腾讯云聊天国际化 (i18n) 工具

欢迎使用由腾讯云聊天团队开发的专用软件包——腾讯云聊天国际化 (i18n) 工具。该软件包提供了一个轻量、强大且对开发者友好的国际化语言工具,专门为我们的聊天 UIKit以及客户的应用量身定制。

它基于fast_i18n,并进行了进一步的开发和封装,以更好地满足我们的需求。我们衷心感谢fast_i18n所付出的卓越工作和宝贵贡献。

有了这个软件包,您可以轻松地管理多语言翻译条目、添加新条目、修改现有条目,甚至为您的项目集成新语言。它极大地简化了为聊天应用程序以及其他有国际化需求的应用程序创建多语言用户体验的过程。

Sample Image

功能

  • 以简单有序的方式管理翻译条目。
  • 无缝添加新的语言条目或修改现有条目。
  • 默认支持英语、中文、日语和韩语,并可根据需要灵活扩展对其他语言的支持。
  • 与腾讯云聊天 UIKit 或其他项目无缝集成。
  • 支持第三方开发者为其应用程序实现国际化。
  • 全面的文档和支持。
  • 基于fast_i18n,进行了进一步的开发,并根据我们的需求和改进的使用习惯进行了定制。

入门

在使用腾讯云聊天 i18n 工具之前,您需要将软件包存储库fork到本地机器,并在项目的pubspec.yaml文件中设置软件包路径。请按照以下步骤操作:

  1. 访问软件包的 GitHub 存储库:https://github.com/TencentCloud/tencent-chat-i18n-tool

  2. 在存储库页面的右上角点击“Fork”按钮。这将在您的 GitHub 账户下创建存储库的副本。

  3. 使用以下 Git 命令将fork的存储库克隆到您选择的本地目录中:

git clone https://github.com/<your-username>/tencent-chat-i18n-tool.git

<your-username>替换为您的 GitHub 用户名。

  1. 在项目的pubspec.yaml文件中,将fork的本地路径添加到dependency_overrides部分:

dependency_overrides:
  tencent_chat_i18n_tool:
    path: /path/to/your/local/repository

/path/to/your/local/repository替换为克隆的存储库在本地的实际路径。

现在,您可以通过在项目的根目录下运行主脚本来使用腾讯云聊天 i18n 工具。

在您的项目中添加新条目

要在项目中添加新条目,您需要使用以下方法包装条目:

  • 对于没有参数的条目,请使用TIM_t("Entry")方法。例如:TIM_t("Hello")
  • 对于带有参数的条目,请使用TIM_t_para("Template: {{option}}", "Template: $option")(option: option)方法。TIM_t_para支持从option1option10的参数。例如:TIM_t_para("Server error: {{option8}}", "Server error: $option8")(option8: $option8)(其中option8是参数名)。

在项目中应用这些方法可确保正确处理具有多语言支持的条目。

用法 - 自定义

请按照以下步骤使用腾讯云聊天 i18n 工具:

  1. 运行工具dart run tencent_chat_i18n_tool。默认情况下,它将读取项目中pubspec.yaml文件中指定的本地软件包路径。如果要使用不同的路径,可以在提示时输入。

  2. 选择选项 A(A. 为国际化添加新的语言条目。此操作必须在添加新条目之前执行),以添加新的语言条目。该工具将提供两种添加新条目]:

    • 选项 1(1. 从项目根目录中的“new_language_entries.txt”文件读取新条目):从项目根目录中的“new_language_entries.txt”文件读取新条目。您可以手动将要包含的条目添加到此文件中,然后选择此选项将其添加到工具中。

    • 选项 2(2. 扫描项目代码以提取新条目并更新“new_language_entries.txt”文件(目前仅支持简体中文)):扫描项目代码以提取新条目并更新“new_language_entries.txt”文件(目前仅支持简体中文)。选择此选项后,该工具将自动扫描Dart文件中的指定目录(例如“lib”),并从中提取中文条目。然后,打开new_language_entries.txt文件并检查提取的条目。如有必要,请对条目进行任何编辑。

  3. 再次运行工具并选择选项 B。该工具会将内置的语言条目以JSON文件的形式保存到您的项目目录中。

  4. 打开位于languages目录中的JSON文件,并翻译每个文件底部的新条目。此时,您还可以通过其键值定位特定条目,并修改每个语言条目库中的翻译文本。但是,请不要删除任何不需要的条目。

  5. (可选)如果您想添加对新语言的支持,请按照以下步骤操作:

    • 导航到项目中的languages目录。
    • 选择一个您熟悉的语言文件并复制一份。
    • 将复制的文件重命名为strings_${ISO_LANGUAGE_CODE}.i18n.json,其中${ISO_LANGUAGE_CODE}是您要添加的新语言的ISO代码(例如,法语为strings_fr.i18n.json)。
    • 将新文件中的所有条目翻译成相应的语言。
  6. 再次运行工具并选择选项 C(C. 将修改后的语言JSON文件注入回工具中,使更新的配置生效),以将修改后的语言JSON文件注入回工具中。更新的配置现在将在您的项目中生效。

完成这些步骤后,您所做的更改将应用于腾讯云聊天 i18n 工具的本地副本。如果您想与他人协作或共享您的更改,可以将修改后的软件包源代码推送到您的内部Pub服务器或Git存储库。要将更新后的软件包用作项目的依赖项,只需将pubspec.yaml文件中的软件包路径更新为指向在线存储库即可。

喜欢

dependency_overrides:
  tencent_chat_i18n_tool:
    git:
      url: https://github.com/<your-username>/tencent-chat-i18n-tool.git

<your-username>替换为您的 GitHub 用户名。

更新说明

腾讯云聊天 i18n 软件包将与腾讯云聊天 UIKit同步更新,以保持版本一致性。每次更新时,我们都会将 Chat UIKit 最新版本的新条目添加到此软件包中。所有更新都将在pub.dev和GitHub存储库上同步发布。

如果您已将此软件包fork到您的GitHub帐户,请注意,每当Chat UIKit更新时,您都需要通过pull upstream操作将此软件包的最新条目库同步到您的fork版本。这确保了您的fork版本同时包含您添加或修改的条目以及我们每个版本添加的新条目。在合并代码和解决冲突时,请确保每个JSON条目库都保持完整。

如果合并后的JSON文件不能直接使用,您可以按照上述第7步中的说明重新运行程序并选择选项 C 来应用更新。请注意,在执行选项 C 之前,您需要确保每个语言条目JSON都是完整且无误的。

以下是pull upstream Git操作的分步示例:

  1. 首先,将上游远程存储库添加到您的本地存储库:
git remote add upstream https://github.com/TencentCloud/tencent-chat-i18n-tool.git
  1. 从上游存储库获取最新更改:
git fetch upstream
  1. 将您的本地存储库切换到要更新的分支(例如mainmaster):
git checkout main
  1. 将上游存储库的更改合并到您的本地存储库:
git merge upstream/main
  1. 如果存在任何冲突,请在编辑器中解决它们,确保每个JSON条目库都保持完整。

  2. 解决冲突后提交更改:

git add .
git commit -m "Merge upstream changes and resolve conflicts"
  1. 将更改推送到您的远程存储库:
git push origin main

现在,您的fork版本包含了最新的条目库。如果您需要应用更新,请按照上述第7步中的说明重新运行程序并选择选项 C。

我们希望腾讯云聊天 i18n 工具能帮助您管理项目中的多语言支持。如果您有任何疑问、建议或反馈,请随时与我们联系。祝您编码愉快!

GitHub

查看 Github