webo3 / laravel-translator
此包添加了 artisan 命令来扫描/导出/导入翻译。
Requires
- php: >=7.0
This package is auto-updated.
Last update: 2024-09-29 05:28:22 UTC
README
该包通过 artisan 命令帮助您管理翻译。在 Laravel >= 5.5 中启用自动发现。
对于 Laravel < 5.5
您需要在 app.php 中注册提供者
webO3\Translator\Providers\TranslatorServiceProvider::class,
配置
您需要指定您希望使用扩展来管理的语言。
要创建 config/webo3-translator.php 文件,请使用以下命令
php artisan vendor:publish --provider=webO3\\Translator\\Providers\\TranslatorServiceProvider --tag=config
扫描和提取翻译
该包通过扫描源代码中的翻译功能 __() 来工作。
翻译:scan 命令会扫描 app 和 resources 文件夹中的文件中的 __() 函数,以下扩展名:*.php, *.js, *.vue。然后,它将为每个启用的语言创建一个文件到 resources/lang/{language}.json,其中包含所有翻译键/值对。
默认情况下,Laravel 会加载 JSON 文件来翻译源代码中使用的字符串。
要扫描和提取翻译,请使用以下命令
php artisan translations:scan
导出翻译
为了帮助翻译,我们使用一个脚本,将所有 JSON 内容导出为 .csv 文件,然后我们可以将其共享在 Excel 或其原始 CSV 格式中。在文件中,我们将有多个列,一个用于键,一个用于语言。键是我们 __() 函数中使用的字符串。如果翻译不存在,它将使用该键。以下是一个示例,如果我们的配置文件中启用了法语和英语语言。
当我们向翻译人员发送此文件时,我们需要告诉他们不要触摸键列,这是我们的翻译参考。如果键中存在错误,无关紧要,只需在语言列中更正即可。
要创建 translations.csv 文件,请使用以下命令
php artisan translations:export
导入翻译
现在我们已经翻译了 CSV 文件,将其放回并使用以下命令导入
php artisan translations:import
在 Vue 中使用翻译文件
为了能够在 Vue 中使用 JSON 文件,我们需要添加一个 NPM 包。(vue-i18n)
npm install vue-i18n --save-dev
在 app.js 文件中添加以下内容。
// Load translations let text_fr = require('../lang/fr.json'); let text_en = require('../lang/en.json'); // Define the current locale let locale = 'en'; // Init VueI18n import VueI18n from 'vue-i18n'; Vue.use(VueI18n); window.i18n = new VueI18n({ locale: locale, silentTranslationWarn: true, messages: { "en": text_en, "fr": text_fr } });
然后可以使用 VueI18n 使用函数 $t() 或 i18n.t() 来翻译我们的 VueJs 模板。
i18n.t('This is an example key.')
或者在 Vue 模板中
<a :title="$t('This is an example key.')">{{ $t('This is an example key.') }}</a>