当前位置: 首页 > 知识库问答 >
问题:

Gettext翻译为英语而非法语

鲁杜吟
2023-03-14

因此,问题如下。我正在将一个站点从每种语言的内容数组转换为一个gettext站点,在原始语言的基础上增加两种语言。

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

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

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

Array
(
    [es] => ./
    [en] => ./en/
    [fr] => ./fr/
    [locale] => es_MX
)

案例2:en_US

Array
(
    [es] => ./
    [en] => ./en/
    [fr] => ./fr/
    [locale] => en_US
)

案例三:fr_FR

Array
(
    [es] => ./
    [en] => ./en/
    [fr] => ./fr/
    [locale] => fr_FR
)

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

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";
}

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

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",$输出),该站点显示了一系列区域设置,其中有几个fr_FR条目,包括fr_FR. utf8。

生成的html是:

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

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

共有1个答案

淳于禄
2023-03-14

这很尴尬,但我没有将\u FR添加到$locale=“FR” 现在我已将其固定为$locale=“fr\u fr” 它正在工作。对不起,浪费时间了。

 类似资料:
  • 我试图使用gettext翻译我的PHP项目,但它不起作用。PHP输出gettext字符串名称,而不是实际的翻译。. po文件在POEditor中编译。 设置区域设置: PO文件:(在locale/en/LC_MESSAGES/filename.PO中) 在PHP中回声: 是的,我尝试了从stackoverflow到Google的一切,用了3个多小时。我已经在PHP中安装了gettext,还尝试重新

  • 我正在使用wpml翻译我正在构建的wordpress站点。我已经创建了一个自定义主题,正在使用wp_get_archives()在博客部分显示归档。当我切换到网站的法语部分时,日期不会被翻译。wordpress不会自动拥有自己的翻译文件吗?

  • 主要内容:自我介绍英语带翻译【篇1】,自我介绍英语带翻译【篇2】,自我介绍英语带翻译【篇3】,自我介绍英语带翻译【篇4】,自我介绍英语带翻译【篇5】,自我介绍英语带翻译【篇6】,自我介绍英语带翻译【篇7】,自我介绍英语带翻译(通用7篇) 自我介绍英语带翻译?“自我介绍”常用于礼貌问答的第一句,也是我们从小就要学会的一种沟通、交际的语言。下面小编给大家带来了自我介绍英语带翻译(7篇),供大家参考。 自我介绍英语带翻译【篇1】 Hello everyone: I am eighteen this y

  • 我正在考虑从自然gettext msgstr切换到固定的。例如从 到 这是因为当站点上的语言数量不断增加时,文本字符串更新变得越来越麻烦,并且每次连续部署版本的所有翻译都不实用。然而,改用伪造的MSGID将使网站模板和源代码(英语是主要语言)的工作变得繁琐。 金字塔框架和变色龙模板通过允许gettext翻译的默认值,为这个问题提供了一个简洁的解决方案。例如,如果没有可用的和数据(英文)。采购订单文

  • 这是一个在线翻译的c++库,在Linux系统上实现的. 支持百度和谷歌在线翻译 可中英或中日互译。 emacs插件支持

  • 我正在尝试将一个网页翻译成几种语言。然而,我只能让gettext为西班牙语工作。 我正在使用以下代码: 如果我设置$lang=“es_es”,字符串将被翻译成西班牙语,但是如果我设置$lang=“de_de”,翻译将不起作用,我只看到默认的英语版本。 我想这可能是关于我的电脑区域设置的事情(我在西班牙语中使用视窗)。我正在Windows上工作(使用Wamplocalhost),我不知道是否需要安装