本地化和国际化(i18n)指南

欢迎使用 Finch 本地化和国际化(i18n)指南!本指南将引导您完成本地化和国际化 Finch 应用程序的步骤。无论您是经验丰富的开发人员还是刚刚起步,Finch 都提供了一套强大的工具来简化服务器端 Web 应用程序开发。

Finch 中的 i18n

Finch 提供了内置的 i18n 系统,用于本地化和国际化您的应用程序。i18n 系统允许您定义多种语言并将应用程序的文本翻译成这些语言。

如何在 Finch 中使用 i18n?

在 Finch 中使用 i18n 非常简单。您只需要在 en.json 或其他语言文件中定义您的语言。以下是如何在 fa.json 文件中定义语言的示例:

{
  "dir": "rtl",
  "example.params": "نام من {name} است، سن من {age} سال است",
  "example.path": "مسیر تست از example.path برای محلی‌سازی",
  "example.tstring": "تست اشیاء TString برای i18n",
  "logo": "Finch",
  "logo.title": "Finch"
}

模板中的 i18n

您可以通过使用 {{ $t('logo.title') }} 语法在模板中使用 i18n。例如,如果您想翻译 logo.title 键,可以这样做:

<h1>{{ $t('logo.title') }}</h1>

控制器中的 i18n

在控制器中使用 i18n 非常简单。您可以使用 "string".tr 方法翻译您的文本。例如,如果您想翻译 logo.title 键,可以这样做:

rq.renderString(text: 'logo.title'.tr);

i18n 中的参数

您可以在 i18n 文本中使用参数。例如,如果您想翻译 example.params 键,可以这样做:

rq.renderString(text: 'example.params'.tr.write({'name': 'Alexandre', 'age': 30}));

在您的模板中,您可以这样使用它:

<p>{{ $t('example.params', {'name': 'Alexandre', 'age': 30}) }}</p>

i18n 中的数组参数

您可以在 i18n 文本中使用数组参数。例如,如果您想翻译 example.params 键,可以这样做:

rq.renderString(text: 'example.params'.tr.writeArr(['Alexandre', 30]));

在您的模板中,您可以这样使用它:

{
    "example.params": "نام من {0} است، سن من {1} سال است",
}
<p>{{ $t('example.params', ['Alexandre', 30]) }}</p>