构建 Laravel 翻译包 - 简介
发布时间 作者 Joe Dixon
简介
在本系列文章中,我们将记录构建和维护 Laravel 开源包的过程。我们将涵盖从包的引导到处理您的第一个问题和拉取请求,以及介于两者之间的一切内容,尽可能地全面。
我们将构建什么
在本系列文章中,我们将构建一个翻译包来补充 Laravel 的原生本地化功能。
Laravel 内置的本地化允许您的应用程序处理多种语言环境并相应地提供翻译后的内容。处理各种语言环境是一个三步过程
- 将内容从您的模板中提取,并移至以 JSON 或 PHP 数组风格语法存储的语言文件中。
- 使用 Laravel 的其中一种翻译检索方法,在您的模板中标记内容。
- 在
app.php
中设置应用程序的当前语言环境。
假设您想以英语和西班牙语提供内容,并且您想使用 JSON 语言文件。在 resources/lang
目录中创建一个名为 en.json
的文件,另一个名为 es.json
的文件。
在每个文件中,创建一个对象并添加一个键。
// en.json{ “hello”: “hello”}
// es.json{ “hello”: “hola”}
要在模板中渲染此内容,您可以使用以下助手
// some_file.blade.php{{ __('hello') }}
现在,如果您的 app.locale 设置为 en
,将渲染 'hello',如果设置为 es
,您猜对了,视图会渲染 'hola'。
随着项目的增长,管理这些文件可能会变得很困难,而我们的包可以帮助您应对这一挑战。我们将构建能够扫描您的项目以查找缺失的翻译键,并将这些缺失的翻译添加到您的语言文件中的功能。我们将处理在多个语言环境之间同步语言,以及添加数据库驱动程序以帮助在多服务器环境中使用。
我们将结合使用 Tailwind CSS 和 Vue.js 来构建翻译管理的用户界面,该界面将与包一起提供。
UI 将允许您添加新的、更新现有的和删除现有的翻译,以及添加新的语言环境。
为什么要构建它
我这样做有两个原因。首先,语言管理是我在很多项目中都需要的东西。虽然有一些不错的包,但没有一个完全满足我的独特需求。
其次,我目前没有维护任何开源项目,而这是我一直想做的事情。本系列文章对我来说将是一次学习体验,我觉得记录这个过程可能会对其他希望开始同样挑战的人有所帮助。
我很高兴开始这段旅程,并期待与您分享我的经验。如果您在过程中有任何问题或反馈,请随时通过 Twitter 联系我。
接下来,我们准备开始在第 2 部分 搭建项目!