http://orchardproject.net/localization

本地化

果园的本地化管理是托管在一个外部服务( Crowdin), 的项目、公众和贡献是受欢迎的!

如何做出贡献

  • 注册上 Crowdin
  • 去的项目页面 果园CMS果园CMS画廊和申请加入该项目。
  • 您的应用程序将很快接受,你就会被添加到项目“校对”所选的语言。 这意味着您将能够编辑和批准翻译(翻译后的字符串必须是包含在下载包)。
  • 如果你是新到果园翻译,请咨询与其他译者的语言和确保你遵循相同的约定。

收到更新

下载包

果园的翻译PO-files的形式存储在包,你可以添加自己的果园实例。 这些包都是再生的每小时(过程需要2 - 3分钟)。 请访问 Crowdin项目主页看到每个语言翻译的进度。

你可以下载所有的每个语言的翻译两个项目: 果园CMS, 果园CMS画廊

每种语言的个人下载包如下:

语言 文化代码 源包 画廊包
南非荷兰语 af-ZA 链接 链接
阿拉伯语,埃及 ar-EG 链接 链接
白俄罗斯 是通过 链接 链接
波斯尼亚 bs-BA 链接 链接
保加利亚 bg-BG 链接 链接
简体中文 应用 链接 链接
中国传统 zh-TW 链接 链接
克罗地亚 hr-HR 链接 链接
捷克 cs-CZ 链接 链接
丹麦 da-DK 链接 链接
荷兰 nl-NL 链接 链接
荷兰、比利时 nl-BE 链接 链接
英语,澳大利亚 en-AU 链接 链接
芬兰 fi-FI 链接 链接
法国 - fr 链接 链接
法国、加拿大 fr - ca 链接 链接
弗里斯兰语 fy-NL 链接 链接
德国 de-DE 链接 链接
希腊 el-GR 链接 链接
希伯来语 he-IL 链接 链接
北印度语 hi-IN 链接 链接
匈牙利 分别 链接 链接
印尼 id id 链接 链接
意大利 葡萄酒 链接 链接
日本 ja-JP 链接 链接
克林贡 tlh-AA 链接 链接
韩国 ko-KR 链接 链接
拉丁 个别 链接 链接
立陶宛 lt-LT 链接 链接
马其顿 mk-MK 链接 链接
挪威书面挪威语 nb-NO 链接 链接
波斯 fa-IR 链接 链接
波兰 pl-PL 链接 链接
葡萄牙语 pt-PT 链接 链接
葡萄牙、巴西 pt-BR 链接 链接
罗马尼亚 滚装的 链接 链接
俄罗斯 ru-RU 链接 链接
塞尔维亚(斯拉夫字母) sr-Cyrl-RS 链接 链接
塞尔维亚(拉丁) sr-Latn-RS 链接 链接
斯洛伐克语 sk-SK 链接 链接
斯洛维尼亚语 sl-SL 链接 链接
西班牙语 es-ES 链接 链接
西班牙、阿根廷 es-AR 链接 链接
西班牙、墨西哥 es-MX 链接 链接
瑞典 sv-SE 链接 链接
泰米尔 助教 链接 链接
泰国 th 链接 链接
土耳其 tr-TR 链接 链接
乌克兰 uk-UA 链接 链接
越南 vi-VN 链接 链接
在Orchard中支持了两种本地化的方法:
1、对Orchard应用程序和模块中的一些文本字符串进行本地化。这个就相当程序本身的多语言支持,大多数的CMS系统都支持这一功能,如:DotNetNuke。
2、对网站内容的本地化。如:你在录入一篇新闻的时候可以同时录入中英文两种版本。
 

本地化Orchard应用程序和模块

 
在Orchard应用程序中所有的文本字符串都是通过一个单独的T()方法输出的。这个方法可以根据当前站点的语言区域设置查找相应字符串的本地化翻译。默认情况下,Orchard提供英文(en-US)字符串,不过你也可以提供其它语言区域的。你可以通过添加语言包文件(.po格式)的形式翻译管理后台和前台网站中所有静态的字符串。下面的内容将介绍如何下载并安装一个语言包文件,并设置使用它。

备注

在.Net应用程序中,本地化通常是通过使用资源文件(.resx)和附属程序集来实现的。Orchard需要一个更轻量级的方法,这就是使用.po文件。在Orchard中,语言包文件的数量等于模块数量乘以所支持的语言。这个数字还可能会不断增长,这样附属程序集的设计就不再适用这种需求了。另一方面,.po文件按照需要被加载或卸载就像.resx文件一样,且在许多工具中.po文件都是以一个标准的存储格式。

 
 
 

安装语言包文件

作为一个例子,我们来下载并设置一个简体中文(zh-CN)的语言包文件。在下面的地址中可以下载到我们所需的语言包文件:
 
点击Download the PO files并将所下载的.zip文件保存到你的电脑中。
 
 

方法一:直接解压语言包文件

解压刚刚下载的语言包文件到网站的根目录下。确保你解压的内容都提取到了网站根目录下,而不是以zip文件名命名的子目录中。这种方法通过解压语言包文件将po文件复制到你的网站目录下。这是一个非常简单的方法,但是如果语言包中有的模块,而你网站中并没有。这样就会多出一些目录来,如果你不想看的这样的结果,那么接下来的方法就可能更适合你了。
 
 

方法二:使用翻译管理(Translation Manager)模块来安装语言包文件

首先你需要从Orchard软件商店中下载并安装Translation Manager模块。一旦这个模块安装好后,你就可以在命令行工具中通过以下命令来安装语言包文件了。
install translation c:\temp\zh-CN.zip
c:\temp\zh-CN.zip就是你刚刚下载文件保存的位置,而关于命令行工具的用法可以查看这里
运行此命令后,已存在的模块将会安装相应的po文件。而没有存在的模块,也不会去创建多余的目录来安装po文件。如果你以后再安装新的模块,就再重新运行一次这个命令就可以了。
 
 

设置站点语言

设置当前站点的默认语言可以在后台管理中点击“Settings => General”。在Default Site Culture下面点击Add or remove supported cultures for the site。
在Cultures页面,从可用语言区域列表中选择一个语言区域添加即可。如果要移除一个语言区域只用在相应已添加的语言区域后面点X即可。
 
在你添加一个或多个语言区域以后,点击General菜单,回到Manage Settings页面。在Default Site Culture中选择本站的默认的语言。
设置了刚刚安装的那种语言包语言区域后,网站的后台界面就变成简体中文的界面。
当然界面上的内容也不是完全都翻译了的,那是因为有些内容是语言包中没有的模块,还有些内容是动态内容。接下来我们会接着介绍如何完善这两项剩余的翻译工作。
 
 

设置默认语言区域为一个其他的语言区域不会有任何影响,除非你安装了相应的语言包文件。Orchard将通过查找以下路径来获取相应的语言包文件。

核心模块本地化文件路径 ~/Core/App_Data/Localization/<culture-code>/orchard.core.po
普通模块本地化文件路径 ~/Modules/<module-name>/App_Data/Localization/<culture-code>/orchard.module.po
主题本地化文件路径 ~/Themes/<theme-name>/App_Data/Localization/<culture-code>/orchard.theme.po
全局站点通用本地化文件路径 ~/App_Data/Localization/<culture-code>/orchard.root.po
虚拟子站通用本地化文件路径 ~/App_Data/Sites/<tenant name>/Localization/<culture-code>/orchard.po
 

可用的语言包文件

你可以在http://orchardproject.net/localize中下载已有的语言包文件,这些语言包文件是大家提供的。如果你找不到相应的语言包文件,请考虑帮忙翻译一下。它只用花费你几个小时的时间,但是将有利于整个社会。
 
 

贡献新的语言包文件

当你找不到可用的语言包文件时,或可用的语言包中有存在错误或缺失时。你可以通过下面的介绍来创建和完善语言包文件,并提供给Orchard来造福大家。
 
 

通过记事本来修改语言包文件

在http://orchardproject.net/Localize中可为你提供一个待翻译的语言包文件模板。找到Create a new translation部分,并选择你需要翻译的语言,点击“Create”。然后会跳转到一个新的页面,点击“Download the PO files”来下载这个模板文件。

解压刚刚下载下来的语言包模板文件,找到里面的.po文件并用记事本打开它。然后翻译完成里面相应的内容,翻译完所有的po文件后重新压缩这个文件夹,并将你所翻译的内容发送邮件join-orchard-localization@lists.outercurve.org就可以了。他们会把你翻译的内容放到可用语言包列表中的。

 
你需要在保存.po文件时,将文件编码格式设置为UTF-8。这个通常在另存为的时候,在保持按钮旁边的编码下拉框中选择。
 
 

语言包文件格式

下面将介绍如何去翻译一个语言包文件。下表列出了语言包文件中的一个翻译条目对应的一些元素:
使用位置,注明是再什么位置使用这个翻译条目的
#: reference-string
条目ID,这通常是原始未翻译的字符串。这个ID设置后,此字符串不应该再修改。

即使是英文字符串有变化也可以让现有的一些其它语言翻译在不更新的情况下能继续工作。

#| msgid "id-string"
当前的英语字符串,这个可以作为我们翻译的基础。
msgid "English-string"
需要翻译的内容
msgstr "translated-string"

翻译条目的引用位置
在一个.po文件中翻译条目引用位置是可选的。如果没有指定翻译条目的引用位置,它将作为一个相同ID且未找到相应引用位置的翻译条目时的后备资源。这种方式可以用于一个应用程序中的通用字符串,比如Save,这样在应用程序中多次出现Save时,只用一个翻译条目就可以了。
 
翻译条目的引用位置可以是不同的位置,这取决于应用程序中是如何使用翻译条目的,引用位置通常有以下几种:
 
  • 视图中使用的:引用位置为视图文件的虚拟路径,如:~/Themes/TheThemeMachine/Views/User.cshtml
  • .cs文件中使用的:引用位置为相应类的完全限定类型名称,如:Orchard.Packaging.AdminMenu
  • 模块和主题清单文件中使用的:引用位置为清单文件的虚拟路径,如:~Themes/TheThemeMachine/Theme.txt。请注意,模块和主题清单的msgId,为相应字段的名称,如:作者在翻译时所用的msgId为Author。
 
 

在线修改语言包文件

这个要发邮件给Orchard才能注册相应的帐号,所以没有试过。大家可以点击这里了解相应的内容。
 
 

提供第三方模块的语言包文件

Orchard所提供的可用语言包文件只包含了一些常用的模块。如果是我们自己开发的模块,就需要我们自己提供语言包文件了。我们可以在安装Translation Manager后,在命令行工具中使用下面的命令来创建自己模块的语言包文件,如:
extract default translation /Extensions:Bing.Maps /Output:\temp
 
这个命令将查找你模块中所有带有T()方法的字符串和模块清单文件中的字段以及其他需要翻译的内容,并将其生成一个语言包文件Orchard.en-us.po.zip到你指定的目录中。你也可以将这个文件发送到orchardfeedback@outercurve.org中,Orchard会把你模块的语言包文件加入到在线翻译数据库中,并提供给大家下载。
 
 

本地化网站内容

除了本地化网站和模块中的一些静态字符串以外,Orchard还提供了本地化网站内容的功能。首先你需要启用Localization功能,在Orchard管理后台中点击Modules菜单,找到Localization功能,点击Enable即可。
 
默认Page类型和Blog Post类型将自动加上Localization部件。你也可以添加Localization部件到其他你需要翻译的内容类型中去。在后台管理系统中点击Content菜单,你可以在某些内容下面看见一个+ New Translation的链接。
注意:这个链接只在你的站点设置支持多种语言时显示。设置方法见上文所述。
 
点击+ New Translation链接后,就会出现一个翻译内容的页面。用于翻译你所要翻译的父内容(就是网站缺省语言的那个内容),每一种翻译的内容都会做为Orchard中一个独立的内容项存在。在翻译内容的界面中,你可以选择相应需要翻译的语言,内容的链接也会相应的加上这种语言名称作为后缀。
 
 
翻译完成后点击Save后,回到前台网站,找到刚刚翻译的内容。你会发现在页面中多处了一个翻译版本的区域,如下图:
点击相应的语言版本,将会跳转到相应语言版本的内容页面。

 
 
 
备注本地化功能是一个正在完善的功能,不是所有Orchard中的功能都支持本地化。例如:Orchard还不能提供通过自动获取当前浏览器默认的语言区域来展现相应可用翻译的内容。这个功能将在未来的版本中实现,在此之前你可以在模块中使用ICultureSelector接口,来实现这样的需求。如果你有其他关于本地化实现的方法或需求,可以发邮件到join-orchard-localization@lists.codeplex.org。
 
 

参考

orchard project 本地化的更多相关文章

  1. Orchard教程索引页

    Orchard官方教程(译)索引 链接标注 原文 则表示未译,其他带有中文标题的表示译文内容. 入门 安装Orchard--Installing Orchard 通过zip包手动安装Orchard-- ...

  2. Orchard创建全局应用

    Orchard的本地化管理托管于一个外部服务(Crowdin),这个项目是公开的且欢迎大家做贡献. Orchard支持两种类型的本地: Orchard应用程序以及已安装模块中的文本字符串的本地化(其实 ...

  3. List of content management systems

    https://en.wikipedia.org/wiki/List_of_content_management_systems Microsoft ASP.NET Name Platform Sup ...

  4. Orchard 源码探索(Localization)之国际化与本地化

    本地化与国际化 基本上相关代码都在在Orchard.Framework.Localization中. T("english")是如何调用到WebViewPage.cs中的Local ...

  5. [翻译]Orchard如何工作

    Orchard一直是博主心中神一般的存在,由于水平比较菜,Orchard代码又比较复杂看了几次都不了了之了.这次下定决心要搞懂其工作原理,争取可以在自己的项目中有所应用.为了入门先到官网去学习一下相关 ...

  6. 微软CMS项目 Orchard 所用到的开源项目

    研发了Orchard一年左右了,时常遇到瓶颈,总觉得力不从心,其实并不是基础不够,关键还是概念性的东西太多,一会儿这个概念名词,一会那个,关于Orchard的技术文档也的确很少,每次看起来总是焦头烂额 ...

  7. Orchard 微软CMS项目介绍

    我之前的项目中使用了Orchard, 它依据依赖注入的思想而做的模块化让我深深为之着迷,这里开始宣传一下这个架构. 包含的概念非常之多,我现在也不甚了解.Orchard就是自己想控制它改变它的话需要非 ...

  8. [译]:Orchard入门——手动安装Orchard

    原文链接:Manually Installing Orchard 文章内容基于Orchard 1.8版本 本文将演示通过zip安装包安装Orchard所需要的步骤. 本文包括如下三种不同的Orchar ...

  9. iOS项目的本地化处理(多国语言)

    项目的本地化就是:iOS系统在不同语言环境下自动切换语言,从而实现一个app发布到全世界各个国家的AppStore上. 我们不仅仅需要在iOS项目中做本地化处理,在上架iOS APP的时候,也需要做对 ...

随机推荐

  1. linux tomcat 乱码

    使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容. 这时,使用查找功能尤为重要. 方法如下: 1.命令模式下输入“/字符串”,例如“/Section 3”. 2.如果查找下一个,按“ ...

  2. django配置使用redis

    通常redis都是用来保存session.短信验证码.图片验证码等数据. 在django上使用redis,先要安装一个包: pip install django-redis==4.8.0(我用的dja ...

  3. 【SQL】使用调用层接口

    只记录C语言相关的,java相关的JDBC和PHP相关的都先跳过. C相关的也只是记录一下,这里面的语句我都不知道如何运行,在我的vs2010里面连头文件都找不到... 我觉得这里只是讲解了一下基本的 ...

  4. KDJ回测

    # -*- coding: utf-8 -*- import os import pandas as pd # ========== 遍历数据文件夹中所有股票文件的文件名,得到股票代码列表stock_ ...

  5. MATLAB作图方法与技巧(二)

    作为MATLAB作图方法与技巧(一)的补充 1.绘制二维散点图 ① scatter函数 scatter(x,y,s,c)函数绘制向量x和y的散点图,其中s代表点的大小,c代表点的形状,s和c缺省时为默 ...

  6. Python 进阶 之 协程

    协程的概念级描述(与线程对比):转自知乎 链接 线程有两个必须要处理的问题:一是碰着阻塞式I\O会导致整个进程被挂起: 二是由于缺乏时钟阻塞,进程需要自己拥有调度线程的能力. 如果一种实现使得每个线程 ...

  7. [转载]数据层的多租户浅谈(SAAS多租户数据库设计)

    原文:http://www.ibm.com/developerworks/cn/java/j-lo-dataMultitenant/index.html 在上一篇“浅析多租户在 Java 平台和某些 ...

  8. 添加登录装饰器的两种方式:FBV和CBV

    1.FBV方式:添加验证装饰器 def auth(func): def deco(request, *args, **kwargs): u = request.get_signed_cookie('u ...

  9. 2017中国大学生程序设计竞赛 - 女生专场B【DP】

    B HDU - 6024 [题意]:n个教室,选一些教室建造糖果商店. 每个教室,有一个坐标xi和在这个教室建造糖果商店的花费ci. 对于每一个教室,如果这个教室建造糖果商店,花费就是ci,否则就是与 ...

  10. POJ 3281 Dining(网络流)

                                                                        Dining Time Limit: 2000MS   Memo ...