构建 Laravel 翻译包 - 简介

发布于 作者:

Building a Laravel Translation Package – Introduction image

简介

在本系列文章中,我们将记录构建和维护 Laravel 开源包的过程。我们将涵盖从包的引导到处理第一个问题和拉取请求,以及我们能够涵盖的尽可能多的内容。

我们将构建什么

在本系列文章中,我们将构建一个翻译包来补充 Laravel 的原生本地化功能。

Laravel 内置的本地化允许您的应用程序处理多种语言环境并相应地提供翻译后的内容。处理各种语言环境是一个三步过程

  1. 将内容从模板中移出并移动到以 JSON 或 PHP 数组语法存储的语言文件中。
  2. 使用 Laravel 的翻译检索方法之一在模板中标记内容。
  3. 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 CSSVue.js 来构建翻译管理的用户界面,该界面将与包一起提供。

该 UI 允许您添加新的、更新现有的和删除现有的翻译,以及添加新的语言环境。

我们为什么要构建它?

我这样做有两个原因。首先,语言管理是我在许多项目中都需要的东西。虽然市场上有一些不错的包,但没有一个完全符合我的独特要求。

其次,我目前没有维护任何开源项目,而这正是我一直想做的事情。本系列文章对我来说将是一次学习体验,我相信记录这个过程将有益于希望开始相同挑战的其他人。

我很高兴开始这段旅程,并期待与您分享我的经验。如果您在过程中有任何问题或反馈,请随时通过 Twitter 联系我。

接下来,我们准备开始在第 2 部分中 搭建项目

Joe Dixon photo

ubisend 的创始人兼 CTO。两个小英雄的骄傲父亲,丈夫,开发者,偶尔环球旅行者。

归档于
Cube

Laravel 新闻通讯

加入 40,000 多名其他开发者,绝不错过新的提示、教程等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和对本地和生产环境的即时反馈进行 Tinker 操作。

Tinkerwell
No Compromises logo

没有妥协

Joel 和 Aaron 是来自 No Compromises 播客的两名经验丰富的开发者,现在可以为您 的 Laravel 项目聘用。 ⬧ 固定费率 7500 美元/月。 ⬧ 没有冗长的销售流程。 ⬧ 没有合同。 ⬧ 100% 退款保证。

没有妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,确保您的 Web 应用程序成功。

Kirschbaum
Shift logo

Shift

运行旧版 Laravel 版本?立即进行自动的 Laravel 升级和代码现代化,以保持您的应用程序新鲜。

Shift
Bacancy logo

Bacancy

为您的项目配备一名经验丰富的 Laravel 开发人员,拥有 4-6 年的经验,每月仅需 2500 美元。获得 160 小时的专门技能和 15 天的无风险试用。立即安排通话!

Bacancy
Lucky Media logo

Lucky Media

立即获得幸运 - Laravel 开发的理想选择,拥有超过十年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 的电子商务。一个开源包,将现代无头电子商务功能的强大功能带入 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 工作板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动套件

SaaSykit 是一款 Laravel SaaS 启动套件,包含运行现代 SaaS 所需的所有功能。支付、精美的结账、管理面板、用户仪表板、身份验证、现成组件、统计信息、博客、文档等。

SaaSykit:Laravel SaaS 启动套件
Rector logo

Rector

您无缝升级 Laravel、降低成本并加速创新以帮助企业成功的合作伙伴

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成来增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解灵活、现代的 MongoDB 数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的无依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

在您的 Laravel 应用程序中添加 Swagger UI

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel 提示构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的站点搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 包在您的 Laravel 应用程序中添加评论

阅读文章