首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用英语翻译,而不是用法语翻译

用英语翻译,而不是用法语翻译
EN

Stack Overflow用户
提问于 2014-03-27 19:43:07
回答 1查看 384关注 0票数 1

因此,问题如下。我正在将站点从每种语言的内容数组转换为一个gettext站点,并添加到原始语言之外。

所以我的基本语言是es_MX,我有en_US和fr_FR翻译。

我在.htaccess中使用以下参数传递有关区域设置的信息:

代码语言:javascript
复制
RewriteRule     ^/?$            index.php?es=./&en=./en/&fr=./fr/&locale=es_MX [L]
RewriteRule     ^en/?$          index.php?es=./&en=./en/&fr=./fr/&locale=en_US [L]
RewriteRule     ^fr/?$          index.php?es=./&en=./en/&fr=./fr/&locale=fr_FR [L]

所以,当我检查$_GET参数时,一切都被正确地接收了。

案例1:默认es_MX

代码语言:javascript
复制
Array
(
    [es] => ./
    [en] => ./en/
    [fr] => ./fr/
    [locale] => es_MX
)

案例2: en_US

代码语言:javascript
复制
Array
(
    [es] => ./
    [en] => ./en/
    [fr] => ./fr/
    [locale] => en_US
)

案例3: fr_FR

代码语言:javascript
复制
Array
(
    [es] => ./
    [en] => ./en/
    [fr] => ./fr/
    [locale] => fr_FR
)

因此,在此之后,为了在例如社交网络插件或属性中使用多个语言变量,我有以下条件:

代码语言:javascript
复制
if(!$_GET["locale"] || $_GET["locale"] == "es_MX") {
    $locale = "es_MX";
    $locale_general = "es_LA";
    $lang = "es";
    $isolang = "es-419";
    $htlang = "es-MX";
} else if($_GET["locale"] == "en_US") {
    $locale = "en_US";
    $locale_general = "en_US";
    $lang = "en";
    $isolang = "en";
    $htlang = "en-US";
} else if($_GET["locale"] == "fr_FR") {
    $locale = "fr";
    $locale_general = "fr_FR";
    $lang = "fr";
    $isolang = "fr";
    $htlang = "fr-FR";
}

之后,我使用以下方法初始化区域设置:

代码语言:javascript
复制
putenv("LC_ALL=".$locale.".utf8");
setlocale(LC_ALL, $locale.".utf8");
bindtextdomain("hacienda", "./locale");
bind_textdomain_codeset("hacienda", "UTF-8");
textdomain("hacienda");

我的语言环境位于:英语(./locale/en_US/LC_MESSAGES/hacienda.mo) -法语(./locale/fr_FR/LC_MESSAGES/hacienda.mo)

我运行了exec("locale -a",$output),该站点显示了大量的区域设置,其中包括几个fr_FR条目,包括fr_FR.utf8。

生成的html是:

代码语言:javascript
复制
<html class="no-js" lang="fr" xml:lang="fr" itemscope itemtype="http://schema.org/Hotel"> <!--<![endif]-->
<head>
    <meta charset="utf-8">
...

我尝试重命名区域设置文件,也创建了一个新的文件,但它似乎没有得到法语翻译。知道是什么导致的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-27 20:39:33

这非常令人尴尬,但我错过了将_FR添加到$locale = "fr";中,因为我已经将它修复为$locale = "fr_FR";,它正在工作。抱歉浪费时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22697648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档