内化 i18n codeigniter 2

发布于 2024-11-29 07:31:05 字数 750 浏览 0 评论 0原文

我使用内部化 i18n ci。

翻译很好,但主页始终保留导航器的默认语言。

例如,我点击一个链接进行翻译(例如西班牙语),这没问题,但如果我点击主页链接,我的西班牙语翻译就会被英语取代(Firefox 默认情况下是英语),

您能帮我吗?


谢谢苏库纳尔, 当我使用内部化 i18ci 时,它会自动使用子域进行重定向。 例如: Firefox 默认语言为英语,我的主页会自动显示:“http://localhost:8888/mysite/en/home” 如果我选择翻译,例如法语,它将变成:“http://localhost:8888/mysite/fr/home” 如果我点击链接,语言将被存储。 例如:订阅页面的链接为:“http://localhost:8888/mysite/fr/translate” 如果我通过链接返回主页,它将成为浏览器的默认语言,并且我选择的语言消失。

这是我的文件:Applications/config/routes:

$route['default_controller'] = "site";
$route['404_override'] = '';
//URI like '/en/about' -> use controller 'about'
$route['^(en|fr)/(.+)$'] = "$2";
$route['^(en|fr)$'] = $route['default_controller'];

我可以更改另一个文件中的某些内容吗?如果是这种情况怎么办?

I use internalization i18n ci.

The translation is fine but the home page always keeps the navigator's default language.

For example, i click on a link to translate (for example spanish) that's fine but if i click on the home link, my spanish translation is replaced by english (firefox is in english by default)

Please could you help me?


Thanks Sukunar,
When I use internalization i18ci, it automatically redirects with subdomain.
For example:
Firefox with english like default language my home will be automatically: "http://localhost:8888/mysite/en/home"
If i choose a translation for example french, it will become: "http://localhost:8888/mysite/fr/home"
If i click on a link the language will be stored.
For example: A link to subscribe page will be: "http://localhost:8888/mysite/fr/translate"
If i come back to my home page with a link, it will be the default language of the browser and my selected language disappear.

This my file: Applications/config/routes:

$route['default_controller'] = "site";
$route['404_override'] = '';
//URI like '/en/about' -> use controller 'about'
$route['^(en|fr)/(.+)

May I change something in another file? and if it's this case how and what?

] = "$2"; $route['^(en|fr)

May I change something in another file? and if it's this case how and what?

] = $route['default_controller'];

May I change something in another file? and if it's this case how and what?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哽咽笑 2024-12-06 07:31:05

您需要使用会话来存储用户的语言。在加载页面之前,从会话中获取用户的语言并显示相关内容。

或者,您可以为不同的语言使用不同的 URL 结构或子域。在这种情况下,您需要确保所有链接都反映语言的更改。从 SEO 角度来看,这也是推荐的,因为网络爬虫将能够访问这些数据。

例如,

site.com - 默认,英语

es.site.com - 特定语言,西班牙语
site.com/es

希望有帮助!

You need to use sessions to store the user's language. Before loading a page, get the user's language from the session and display relevant content.

Alternatively, you can use a different URL structure or sub-domains for different languages. In this case, you need to make sure all yours links reflect the change in the language. This is also recommended from SEO perspective since web crawlers will be able to access this data.

For example,

site.com - default, in english

es.site.com - language specific, in spanish
site.com/es

Hope it helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文