我知道如何创建.po文件以及如何生成.mo文件,然后在我的Codeigniter支持的网站上使用它们进行翻译。但是,我不太清楚如何从站点GUI更改语言。我想坚持使用codeigniter的默认网址调用架构:www.domain.com/controllername/method/param1/param2。
像这样调用服务器是明智的:www.domain.com/controllername?lang=en
使用默认的url架构为每个控制器执行此操作,要求我在每个控制器中实现相同的方法,只是将lang参数传递给setlocale()函数,然后绑定到我的.po域名。感觉很尴尬......
你们是如何在codeigniter中使用gettext的?是的,我确实想使用gettext。
答案 0 :(得分:2)
我只是创建了一个可以在视图中自动翻译{t}和{/ t}之间的所有文本的库,我发布在这里以防有人想要使用它而不是在视图中调用gettext函数:
视图代码可能是:
<html>
<head>
<title>{blog_title}</title>
</head>
<body>
<h3>{blog_heading}</h3>
{blog_entries}
<h5>{t}Title is{/t} {title}</h5>
<p>{t 1="<b>" 2="</b>"}Click here %1to see%2 me{/t}{body}</p>
<p>{t 1="{id}" 2="author"}The id is: %1 wrote by %2{/t}</p>
<p>{t 1="<a href=\"link here\">" 2="</a>"}Please lick on me%2{/t}</p>
{/blog_entries}
</body>
</html>
答案 1 :(得分:1)
我检查用户在“post_controller_constructor”上挂钩检测的语言,并将其设置为全局可用(例如,在运行时更改配置文件中的语言)。控制器只需使用该值。
使用后备检查检测语言
但是,如果不支持某种语言,请使用默认语言。 使用新数据设置或刷新cookie。
因此,如果用户点击某处更改语言,通常不需要使用GET参数,即使只是一次,