我正在一个网站上工作,包括多语言支持.
我可以使用Zend_Translate翻译字符串,但内容呢?
例如,我是否必须为每种语言为同一产品添加多条记录?或者还有其他方法吗?
我是多语种的新手,请帮忙.
提前致谢.

—加法—————————–

好吧,我决定使用混合解决方案来使用谷歌翻译api并将其存储在数据库中以供进一步编辑.那么存储翻译的数据库结构应该是什么?

>我应该将不同语言的翻译保存在与父记录相同的表中.即产品表中的产品,附加一列标识语言.
>用于存储所有表的所有翻译的通用单表.例如翻译(id bigint,table_name vc(50),table_id bigint,langugae,column_name vc(50),翻译)

我应该在相关表中保存记录

几种可能的方法:

>使用gettext(或像Poedit这样的软件)从内容中提取数据.可以使用变量插值.
>创建视图过滤器,如:Zend Framework and Translation中所述
>在数据库中具有单独的数据内容.
如果您以标记(例如Markdown)格式存储内容,任何人都可以轻松翻译.用不同的语言创建搜索引擎很容易.

似乎第三种方法需要付出最大的努力,但这是值得的.

评论后更新

我假设您将产品数据存储在数据库中,如下所示:

- product_data
-- id
-- price
-- name
-- description
-- etc…

所以你应该修改它,为每种语言的翻译字符串添加字段:

- product_data
-- id
-- price

- product_data_translations
-- product_id
-- language (e.g. en)
-- name
-- description
-- etc

然后,您可以轻松地构建SQL查询以提取product_id = x和language =“fr”的翻译数据.

您也可以使用Doctrine I18N自动为您完成.

您需要手动翻译内容(或使用Google Api自动翻译),但是,您可以使用例如Zend_Search_Lucene轻松地对其进行索引.

php – Zend Framework中的多语言网站的更多相关文章

  1. IOS键盘默认按钮翻译

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

  2. 从iOS应用程序发送帖子到PHP脚本不工作…简单的解决方案就像

    我之前已经做了好几次了但是由于某些原因我无法通过这个帖子…我尝试了设置为_POST且没有的变量的PHP脚本……当它们未设置为发布时它工作精细.这是我的iOS代码:这里是PHP的一大块,POST变量不在正确的位置?我想这对于更有经验的开发人员来说是一个相当简单的答案,感谢您的帮助!解决方法$_POST是一个数组,而不是一个函数.您需要使用方括号来访问数组索引:

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

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

  4. [翻译]Swift导览

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  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之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部