Questions tagged «multilingual»

11
多语言数据库的架构
我正在开发一种多语言软件。就应用程序代码而言,可本地化性不是问题。我们可以使用特定于语言的资源,并拥有与之配合使用的各种工具。 但是,定义多语言数据库架构的最佳方法是什么?假设我们有很多表(100个或更多),每个表可以有多个可以本地化的列(大多数nvarchar列应该可以本地化)。例如,其中一个表可能包含产品信息: CREATE TABLE T_PRODUCT ( NAME NVARCHAR(50), DESCRIPTION NTEXT, PRICE NUMBER(18, 2) ) 我可以想到三种方法来支持“名称”和“ DESCRIPTION”列中的多语言文本: 每种语言的单独列 当我们向系统添加新语言时,我们必须创建其他列来存储翻译后的文本,如下所示: CREATE TABLE T_PRODUCT ( NAME_EN NVARCHAR(50), NAME_DE NVARCHAR(50), NAME_SP NVARCHAR(50), DESCRIPTION_EN NTEXT, DESCRIPTION_DE NTEXT, DESCRIPTION_SP NTEXT, PRICE NUMBER(18,2) ) 带有每种语言列的翻译表 代替存储翻译的文本,仅存储翻译表的外键。翻译表包含每种语言的列。 CREATE TABLE T_PRODUCT ( NAME_FK int, DESCRIPTION_FK int, PRICE NUMBER(18, 2) …

30
要三元还是不三元?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心寻求指导。 7年前关闭。 我本人是三元运算符的拥护者:()?:; 我确实意识到它有它的位置,但是我遇到了许多程序员,他们完全反对使用它,有些人经常使用它。 您对此有何感想?您看到过使用它有趣的代码吗?

13
最佳实践多语言网站
我已经在这个问题上苦苦挣扎了好几个月了,但是以前我从来没有需要探索所有可能的选择的情况。现在,我觉得该是时候了解各种可能性并建立自己的个人喜好了,以便在我即将进行的项目中使用。 首先让我勾勒出我要寻找的情况 我将要升级/重新开发已经使用了一段时间的内容管理系统。但是,我觉得多语言是对该系统的极大改进。在我没有使用任何框架之前,我将在即将到来的项目中使用Laraval4。Laravel似乎是更干净的PHP编码方式的最佳选择。Sidenote: Laraval4 should be no factor in your answer。我正在寻找独立于平台/框架的一般翻译方式。 应该翻译什么 由于我正在寻找的系统需要尽可能地方便用户使用,因此管理翻译的方法应在CMS内部。无需启动FTP连接即可修改翻译文件或任何html / php解析的模板。 此外,我正在寻找最简单的方法来转换多个数据库表,而无需创建其他表。 我自己想到了什么 我一直在寻找,阅读和尝试自己的东西。我有几个选择。但是我仍然不觉得自己已经达到了我真正追求的最佳实践方法。现在,这是我想出的,但是这种方法也有副作用。 PHP解析模板:模板系统应由PHP解析。这样,我就可以将转换后的参数插入HTML,而不必打开模板并进行修改。除此之外,PHP解析的模板使我能够为整个网站使用1个模板,而不必为每种语言都拥有一个子文件夹(这是我以前使用的)。达到此目标的方法可以是Smarty,TemplatePower,Laravel's Blade或任何其他模板解析器。正如我所说,这应该独立于书面解决方案。 数据库驱动的:也许我不需要再次提及。但是解决方案应该是数据库驱动的。CMS的目标是面向对象和MVC,所以我需要考虑字符串的逻辑数据结构。正如我的模板将被结构化:模板/控制器/ View.php也许这一结构将最有意义:Controller.View.parameter。数据库表将这些字段与字段长在一起value。在模板内部,我们可以使用某种排序方法,例如echo __('Controller.View.welcome', array('name', 'Joshua'))和参数contains Welcome, :name。因此结果是Welcome, Joshua。这似乎是执行此操作的好方法,因为编辑器很容易理解诸如:name之类的参数。 数据库负载低:如果在旅途中加载这些字符串,上述系统当然会导致数据库负载。因此,我需要一个缓存系统,以便在管理环境中编辑/保存语言文件后立即重新呈现它们。由于生成了文件,因此还需要一个良好的文件系统布局。我想我们可以选择languages/en_EN/Controller/View.php最适合的是.ini或.ini。也许.ini甚至可以更快地解析。该数据应包含中的数据format parameter=value; 。我猜这是最好的方法,因为渲染的每个View都可以包含它自己的语言文件(如果存在)。然后,应将语言参数加载到特定视图,而不是在全局范围内加载,以防止参数相互覆盖。 数据库表翻译:实际上,这是我最担心的事情。我正在寻找一种创建News / Pages / etc的翻译的方法。尽快。每个模块都有两个表(例如News和News_translations)是一个选项,但是要获得一个好的系统感觉很费力。有一个问题我想出了是基于对事物data versioning系统我写的:有一个数据库表名Translations,这个表有一个独特的组合language,tablename和primarykey。例如:en_En / News / 1(请参阅ID为1的“新闻”项目的英文版本)。但是此方法有两个巨大的缺点:首先,该表往往会在数据库中存储大量数据时变得很长,其次,使用此设置来搜索表将是一件艰巨的工作。例如,搜索该项目的SEO段将是全文搜索,这真是愚蠢。但另一方面:这是一种非常快速地在每个表中创建可翻译内容的快速方法,但我不认为这会增加缺点。 前端工作:前端也需要一些思考。当然,我们会将可用的语言存储在数据库中,并停用所需的语言。这样,脚本可以生成一个下拉菜单来选择一种语言,后端可以自动决定可以使用CMS进行哪些翻译。然后,在获取用于视图的语言文件或为网站上的内容项获取正确的翻译时,将使用所选的语言(例如en_EN)。 因此,它们在那里。到目前为止,我的想法。它们甚至还不包括日期等的本地化选项,但是由于我的服务器支持PHP5.3.2 +,因此最好的选择是使用国际扩展名,如此处所述:http ://devzone.zend.com/1500/internationalization-in -php-53 / -但这将在以后的开发中使用。目前,主要问题是如何拥有网站内容翻译的最佳实践。 除了我在这里解释的所有内容之外,我还有另一件事尚未决定,它看起来像一个简单的问题,但实际上,这让我头疼: 网址翻译?我们应该这样做吗?又以什么方式? …


11
使codeigniter网站成为多语言的最佳方法。从lang数组调用取决于lang会话?
我正在研究几个小时,但是我找不到任何清晰有效的方法来实现它:/ 我有一个英文的codeigniter基本网站,现在必须添加波兰语。根据访问者的选择,以两种语言制作我的网站的最佳方法是什么? 有什么方法可以为每种语言创建数组文件并在视图文件中调用它们,取决于从lang选择的Session?我不想使用数据库。 感谢帮助!我的期限快用完了:/谢谢!!

10
Laravel验证属性“不错的名称”
我正在尝试使用“语言> {语言}> validation.php”中的验证属性,将:attribute名称(输入名称)替换为适当的可读名称(例如:first_name>名字)。使用起来似乎很简单,但是验证器没有显示“好名字”。 我有这个: 'attributes' => array( 'first_name' => 'voornaam' , 'first name' => 'voornaam' , 'firstname' => 'voornaam' ); 显示错误: @if($errors->has()) <ul> @foreach ($errors->all() as $error) <li class="help-inline errorColor">{{ $error }}</li> @endforeach </ul> @endif 并在控制器中进行验证: $validation = Validator::make($input, $rules, $messages); $ messages数组: $messages = array( 'required' => ':attribute is …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.