-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
国际化(多语言)支持 RFC #6
Comments
我提个我的思路,可行性未验证: 预期目标:同一文章链接,中文朋友看的是中文,英文朋友看的是英文版本的,日语朋友看的是日语版本的。用户可以在后台编辑器通过按钮切换编辑的语言版本,选择对应的版本编辑。 存储的几种方案:
两种方式各有优劣 |
可以考虑下国际化也通过插件的方式来实现 @ruibaby
|
我认为是可行的,专门为多语言的场景设计好扩展点即可。 /cc @halo-dev/sig-halo |
倾向于这种方式,目前 1.5 就已经有了 contents 表,专门用于存储内容,也许只需要改动这张表即可。最终 2.0 在设计这块的时候也可能按照这种方式。 |
这种方式的缺点是:在文章数量比较多的情况下,查询的性能可能有些低,而且在只需要一个语言版本的文章内容时,直接查出了所有的语言版本,大概有部分冗余,可以考虑放到缓存里,但是如果放到缓存,内存占用可能又比较大。 |
那我理解错了。我的意思是加一个 locale 字段,每个语言一条数据。而不是加 zh en jp 字段。 |
明白了,一篇文章对应内容表多条记录,要哪个查哪个。 |
还需要考虑每个语种的内容(主题、页面、文章)的排版布局都是不一样的,并不是说将中文的“一二三四"翻译成英语的“abcd”就解决了国际化问题。 国际化实际上是拥有同一标识的多个不同内容之间的切换,所以单单为翻译增加扩展点可能并不够灵活。 |
文章多语言,请问有实现了么 |
期待! |
翻译区分前台和后台,我不懂代码和相关技术,但是用过WP和WP翻译插件建站,有些思路可以借鉴,简单说说自己的看法。 前台:前台也就是网站内容翻译,不限定只有文章,前台站点所有能看到的都可以翻译,文章标题、图像、字符块等等。并且根据翻译的内容语言设定相应的二级目录/fr、/en、/jp,这种二级目录对于用户和搜索引擎比较友好。通过相应的标签例如hreflang来指示页面的语言和地区,至于让用户看到什么语言的网站,可以根据用户的设备语言和IP来自动判定和跳转(这个会影响性能),亦或者不做条件判定让用户自己选择。 后台:halo后台的翻译,不止是halo自己自身,还有主题和插件的翻译,因为有些主题和插件的相关字段也会显示在前台网站内容上。 前台和后台的翻译由专门的插件来进行,前台和后台可以选择不同语言(后台中文,前台站点默认语言是英文这种),官方提供相应的API接口和方案,然后站长可以自行翻译halo、主题、插件,可以将相关语言文件提交给相应的作者以供审核内装,来实现翻译文件随着halo、主题、插件的更新而更新并自动切换。前台后台的翻译区分开,后台官方可以先出个插件,前台的翻译可以由第三方插件来实现。毕竟现在生态刚起步,什么插件功能的扩展和实现都靠官方不现实,保证halo自身的简洁很重要,halo保证核心功能即可。 |
或许我可以试试课题? |
国际化可能涉及到翻译不了的情况,比如同一个页面,中文是 你好中国,日文是你好日本等 |
可以参考下hugo,不同的文章后缀不一样,现在从hugo往这边转,还不知道怎么把多语言文章转过来呢 |
I second this, hope an english option is added. I really like to use Halo but it’s just too hard to always translate everything from systems to themes. Haha |
现在的支持方法还是只能由主题实现吗? |
|
Halo 在可预见的未来里将不再考虑实现内容的多语言管理。 如上,经过讨论,我们最终决定不再考虑实现内容的多语言,原因如下:
Halo 关于多语言的目标应该是完善系统界面的 i18n,以满足不同语言使用人群的需求。针对多语言网站,后续可能的实现方式是多站点管理(单实例部署多个网站),即为不同语言的内容创建不同的网站进行单独管理。 |
The text was updated successfully, but these errors were encountered: