构建 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 部分中 搭建项目!