Skip to content
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

将配置中的文字按照语言来分类,放到yml文件,方便翻译或者文案工作者编辑文字 #181

Closed
iLtc opened this issue Feb 9, 2020 · 14 comments
Assignees
Labels
kind/feature Category issues or prs related to feature request.

Comments

@iLtc
Copy link
Member

iLtc commented Feb 9, 2020

目前 site_config 下文件的格式是:

blog.js
    'en-us': {
        key1: value1,
        key2: value2
    },
    'zh-cn': {
        key1: value1,
        key2: value2
    },
    ...

community.js
    'en-us': {
        key1: value1,
        key2: value2
    },
    'zh-cn': {
        key1: value1,
        key2: value2
    },
    ...

这样的格式有两方面的问题:

  1. 要增加新语言的时候,需要去每个配置文件例分别添加新语言;

  2. 由于 json 本身格式的问题,文件中有大量 中括号、大括号、引号 相互嵌套,修改配置或翻译时如果不慎弄错一个符号,就会导致编译失败。

针对以上两个问题,我们打算进行如下两部操作:

  1. 将 site_config 下的配置文件重新排列,新格式如下:
en-us.js
    'blog': {
        key1: value1,
        key2: value2
    },
    'community': {
        key1: value1,
        key2: value2
    },
    ...

zh-cn.js
    'blog': {
        key1: value1,
        key2: value2
    },
    'community': {
        key1: value1,
        key2: value2
    },
    ...

这样,需要添加新语言时只需要直接复制另一个语言文件即可。

  1. 将文件格式由 .js 转为 .yml。YAML 格式可以通过缩进取代部分括号,减轻格式复杂度。
@iLtc iLtc added the kind/feature Category issues or prs related to feature request. label Feb 9, 2020
@lovepoem
Copy link
Collaborator

lovepoem commented Feb 9, 2020

@purple-force , 麻烦指导一下。

@lovepoem lovepoem changed the title 变更 site_config 格式 将配置中的文字按照语言来分类,语言方便翻译或者文案工作者编辑文字 Feb 9, 2020
@lovepoem lovepoem changed the title 将配置中的文字按照语言来分类,语言方便翻译或者文案工作者编辑文字 将配置中的文字按照语言来分类,放到yml文件,语言方便翻译或者文案工作者编辑文字 Feb 9, 2020
@GindaChen
Copy link
Contributor

支持 @purple-force

@lovepoem lovepoem changed the title 将配置中的文字按照语言来分类,放到yml文件,语言方便翻译或者文案工作者编辑文字 将配置中的文字按照语言来分类,放到yml文件,方便翻译或者文案工作者编辑文字 Feb 10, 2020
@purple-force
Copy link
Collaborator

有些东西yaml格式支持不了,比如这种文字和链接混排。

@purple-force
Copy link
Collaborator

image

@iLtc
Copy link
Member Author

iLtc commented Feb 10, 2020

其实这几行字我们是准备把链接分开的。

链接混在文字里面,翻译会比较复杂,需要标注哪几个字在链接里面,哪几个字在外面。

@lovepoem
Copy link
Collaborator

其实这几行字我们是准备把链接分开的。

链接混在文字里面,翻译会比较复杂,需要标注哪几个字在链接里面,哪几个字在外面。

那还能取得原来那样的效果吗?

@iLtc
Copy link
Member Author

iLtc commented Feb 10, 2020

那还能取得原来那样的效果吗?

会变成“提交新问题”这几个字都是链接,而不是单单“新问题”三个字是链接。

这个暂时不会变,我先改 JSON 结构。

@GindaChen
Copy link
Contributor

有可能

  1. 把所有字段的翻译留在site_config的csv文件里面
  2. 我们写一个js把csv导入,然后programmatically构造config吗?

@iLtc
Copy link
Member Author

iLtc commented Feb 10, 2020

  • 把所有字段的翻译留在site_config的csv文件里面
  • 我们写一个js把csv导入,然后programmatically构造config吗?

能,能。

我们可以考虑把表格转成 key/value 的格式,然后一份配置文件,针对不同语言生成不同版本。

@purple-force
Copy link
Collaborator

有结论吗?

@iLtc
Copy link
Member Author

iLtc commented Feb 12, 2020

@purple-force 我这两天在忙学校作业,大约周三周四回复你

@iLtc
Copy link
Member Author

iLtc commented Feb 14, 2020

大家有空看一下 #219,我把语言文件独立出来放在 i18n/ 目录下,并尽量合并了所有添加新语言时需要修改的地方。

在目前的结构下,如果需要添加新语言,只需要修改 site_config/site.js 中的 langList,并在 i18n 目录下添加新语言文件(可以复制现有语言)即可。

本人 react/nodejs 不熟,改的不妥的地方恳请指出哈。

@GindaChen
Copy link
Contributor

我先点个👍 赶完due来找你

@lovepoem
Copy link
Collaborator

lovepoem commented Mar 6, 2020

现在是在i18n的配置里编写多语言内容。先关闭

@lovepoem lovepoem closed this as completed Mar 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Category issues or prs related to feature request.
Projects
None yet
Development

No branches or pull requests

4 participants