构建 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 的创始人兼首席技术官。两个小英雄的父亲,丈夫,开发人员,偶尔的环球旅行者。

分类于
Cube

Laravel 新闻通讯

加入 40,000 多名其他开发人员,不错过任何新的技巧、教程等。

Laravel Forge logo

Laravel Forge

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

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成功能和本地和生产环境中的即时反馈进行调试。

Tinkerwell
No Compromises logo

绝不妥协

来自绝不妥协播客的两位经验丰富的开发人员 Joel 和 Aaron 现已开放接洽,可为您的 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 应用程序中添加评论

阅读文章