我试图使用 PHP gettext扩展来翻译一些字符串.所有函数似乎都返回正确的值,但调用gettext()/ _()只返回原始字符串. PO / MO文件似乎正确,我相信我已正确设置目录.我在Windows上运行带有PHP 5.3.10的WAMP服务器(也尝试运行5.3.4和5.3.8,因为我有安装).

首先,请参阅/new2/www/index.PHP:

$locale = 'esn'; # returns Spanish_Spain.1252 in var dump

putenv("LC_ALL={$locale}"); // Returns TRUE
setlocale(LC_ALL,$locale); // Returns 'Spanish_Spain.1252'

$domain = 'messages';
bindtextdomain($domain,'./locale'); // Returns C:\wamp\www\new2\www\locale
bind_textdomain_codeset($domain,'UTF-8'); // Returns UTF-8
textdomain($domain); // Returns'messages'

print gettext("In the dashboard"); // Prints the original text,not the translation.
exit;

我创建了以下文件结构:

www/new2/www/locale/Spanish_Spain.1252/LC_MESSAGES/messages.mo

我也尝试用以下语言替换Spanish_Spain.1252:es_ES,esn,esp,Spanish和Spanish_Spain.

用于生成MO的PO文件是这样的(仅给出相关条目):

#: C:\wamp\www\new2/www/index.PHP:76
msgid "In the dashboard"
msgstr "TRANSLATED es_ES DASHBOARD"

这是使用PoEdit生成的.添加任何新的.MO文件后,我重新启动了Apache.另请注意,我之前使用Zend_Translate和Gettext,它正在正确翻译.我希望依赖本机gettext扩展,部分原因是我试图创建一个自己的轻量级框架.

任何帮助,将不胜感激.

编辑:修改后的目录结构.注意 – 将能够在24小时内尝试最近的答案.

我在我的XAMPP实例上进行了设置并弄明白了.

>扁平化setlocale在Windows上不起作用,因此返回的内容无关紧要.
>对于Windows,您使用标准语言/国家/地区代码设置区域设置(在这种情况下,es_ES是西班牙语中的西班牙语)
>在您的语言环境目录下,创建es_ES / LC_MESSAGES /.这是您的messages.mo文件所在的位置.

$locale = 'es_ES'; 

putenv("LC_ALL={$locale}"); // Returns TRUE

$domain = 'messages';
bindtextdomain($domain,'./locale'); 
bind_textdomain_codeset($domain,'UTF-8'); 
textdomain($domain); // Returns'messages'

print gettext("In the dashboard"); 
exit;

我不确定这是否有所不同,但我在创建po文件时做了两件事.在文件中的poEdit – >首选项我将行结束格式更改为Windows.在用poEdit创建初始po后,我在记事本中打开文件,并将编码类型切换为UTF-8,因为poEdit没有这样做.

我希望这至少能指出你正确的方向.

参考

PHP Localization Tutorial on Windows

Country Codes

Language Codes

PHP Gettext – 没有翻译的更多相关文章

  1. IOS键盘默认按钮翻译

    实际上,我只需要在十进制键盘上将“done”/“pref”/“next”按钮翻译成俄语或其他语言.顺便说一下,本地化的应用程序在俄语中.此外,当我改变本地化语言时,所有其他按钮,如“取消”在其他控件被自动翻译.但不是这样.可以不经过定制吗?

  2. [翻译]Swift编程语言——关于Swift

    Swift是一门用于iOS和OSX应用开发的新的编程语言,它以C和Objective-C语言为基础,但没有C语言的兼容性约束。Swift的酝酿花费了数年。Apple为了Swift改进了已有的编译器、调试器和框架的底层。对于Objective-C语言的开发者,Swift是那样的似曾相识。在这个基础之上,Swift引入了许多新的特性并且支持面向对象编程。Swift将现代编程语言的精华和苹果工程文化中的智慧结合在一起。所有这些使得Swift对于开发者和Apple都是一笔对未来可靠的投资。

  3. [翻译]Swift导览

    Swift导览第一次用一门新语言编程,通常要在屏幕上打印“Hello,World”。本章会通过展示如何完成一系列变成任务,来给你的Swift编程之旅开个好头。在Mac电脑上,下载playground,双击连接https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.playground.zip用Xcode将其打开。Swift中的值不会隐式转换类型。

  4. [翻译]Swift编程语言——基础

    基础Swift是一个门用于iOS和OSX开发的新语言。但是,Swift的很多内容同C语言、OC语言相似。Swift提供了C和OC语言的基础类型的自我版本,包括Int表示整型,Double和Float表示浮点数,Bool表示布尔值,String表示文字数据。Swift也广泛使用那种值不能修改的变量。在常见的类型之外,Swift引入了OC语言没有的高级类型,比如元组。从可选类型可以看得出来Swift是一门类型安全的语言。Swift会帮助你明确代码中可以操作的值的类型。

  5. [翻译]Swift编程语言——基本操作符

    基本操作符操作符就是一个简单的符号或者短语,你可以用他们来检查、改变、组合数据。Swift支持标准C的大多数操作符而且有若干改进可以避免代码错误。算数运算符会检测并且不接受溢出的数据,你可以选用Swfit的溢出操作符预防这种情况出现。像C一样,Swift允许你对浮点数取余,同时Swfit也提供了两个C没有的范围操作符(a..术语操作符有一元、二元以及三元的:一元操作符只有一个操作对象(比如-a)。

  6. [翻译]Swift编程语言——控制流

    控制流for、while、if、switch和C基本一样for-in扩展forSwift的switch比C语言的要强大。当语句被执行后,index的值被范围内的第二个数字2替换,循环体内的语句被再次执行。for-int同样可以使用在遍历字符串中字符的情形下:for一般的形式:和C语言不同的就是缺少了圆括号。Swift提供两个格式的while:1:while在每次执行循环体前判断条件。如果到达或超过25号格子,循环条件检查为假,游戏结束。继续执行if括号后的内容。

  7. [翻译]Swift编程语言——函数

    Swift的标准化函数语法足够用来表述无论是C风格的无参函数,还是复杂的OC风格的具有本地和外部参数的方法。每个Swift的函数都有类型,类型包括了函数的参数类型和返回值类型。为了让这个函数看起来更简洁,可以将讯息创建和返回语句组合在一行实现:函数的参数和返回值Swift的函数参数以及返回值是非常灵活的。写那个名字一次,在它的前面加上井号就可以,这个告诉Swift这个参数的局部名称和外部名称相同。

  8. [翻译]Swift编程语言——闭包

    Swift的闭包和C语言和OC中的blocks、其他语言中的lambdas类似。Swift的闭包表达式具有干净清晰的风格,withoptimizationsthatencouragebrief,clutter-freeSyntaxincommonscenarios.有点有:1根据上下文推断参数和返回值的类型。Sorted函数Swif标准库提供了一个叫做sorted的函数,它用来对已知类型的数组进行排序,实现过程是通过传入的排序闭包。Swift的字符串类型支持用>作为一个函数表示大于,返回一个布尔值。有一个

  9. [翻译]Swift编程语言——枚举

    Swift的枚举更加灵活,不必给每个枚举成员指定值。Swift中的枚举是第一类型。NOTE和C语言和OC不同,在创建时,Swift的枚举成员不被指定一个默认的整型数值。像Swift中的其他类型一样,他们的名字需要首字母大写。在Switch语句中匹配枚举类型你可以使用switch语句匹配单个的枚举内容:你可以这样解读上面的代码:判断一下directionToHead的值。和控制流一章描述的一样,switch语句的分支必须涵盖枚举的所有内容。然而有时单独给枚举的每个成员存储联合数值更有必要。

  10. [翻译]Swift编程语言——类和结构体

    Swift中,你在单独文件中定义一个类或者结构体,关联到这个类或者结构体的外部接口会自动生效,供其它代码使用。然而,同其他语言相比,Swift的类和结构体在功能方面更加密切,本章的大部分会介绍可以用在类或者结构体实例上的功能。实际上Swift中所有的基本类型——整型、浮点型、布尔类型、字符串,数组和字典都是值类型,并且在后台以结构体的形式实现。Swift中所有的结构体和枚举都是值类型的。

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部