carry0987/i18n
Composer 安装命令:
composer require carry0987/i18n
包简介
A modern internationalization system featuring JSON-format language files and efficient PHP-based caching. Supports dynamic language switching and real-time cache updates, ideal for rapid development and deployment of multilingual websites and applications.
README 文档
README
A modern internationalization system featuring JSON-format language files and efficient PHP-based caching. Supports dynamic language switching and real-time cache updates, ideal for rapid development and deployment of multilingual websites and applications.
Features
- Supports multiple language files
- Automatic caching of translation data for improved performance
- Supports organization of translation keys by namespaces
- Configurable translation file directory and cache directory
Requirements
- Composer
File Structure
Here's an example of the expected file structure:
.
├── cache
├── lang
│ ├── en_US
│ │ ├── general.json
│ │ └── greeting.json
│ └── zh_TW
│ ├── general.json
│ └── greeting.json
├── src
│ ├── /...
│ └── I18n.php
└── vendor
Installation
Use Composer to install the I18n class library into your project:
composer require carry0987/i18n
Usage
After installation, you can include the I18n class in your project with Composer's autoloading:
require_once 'vendor/autoload.php'; use carry0987\I18n\I18n; $i18n = new I18n([ 'useAutoDetect' => true, // By default, the language is automatically detected 'langFilePath' => 'path/to/lang', 'cachePath' => 'path/to/cache' ]);
Fetch translations:
// Use file name and key to get the translation value echo $i18n->fetch('greeting.hello'); // Outputs: "Hello"
Fetch multiple translations:
// Get multiple translations in the current language $translations = $i18n->fetchList(); // Empty parameter returns all translations
Note
When accessing translations, the keys used must follow the format: filename.key, which ensures that each translation value is extracted from the specified file.
Advanced Usage
If set useAutoDetect to true, the language will be automatically detected from the browser's Accept-Language header. If the language is not supported, the default language will be used. Also, if you want to change cookie settings, you can set the cookie option:
$config = array( 'useAutoDetect' => true, //... 'cookie' => array( 'name' => 'lang', 'expire' => time()+864000, 'path' => '/', 'domain' => '', 'secure' => true, 'httponly' => true ) );
You can set the language code manually:
$i18n = new I18n([ 'useAutoDetect' => false, // Set useAutoDetect to false to disable automatic language detection //... ]); // Initialize the language settings $i18n->initialize('en_US'); // 'en_US' is the language code
Load specific language files:
$i18n = new I18n([ 'allowedFiles' => ['general', 'greeting'], // Set the list of language files to be loaded //... ]);
Set language aliases:
// Define aliases for languages $i18n->setLangAlias(array('en_US' => 'English', 'zh_TW' => '繁體中文')); // Fetch the list of languages with their aliases $aliasedLangList = $i18n->fetchLangList(); // Outputs: array('en_US' => 'English', 'zh_TW' => '繁體中文')
carry0987/i18n 适用场景与选型建议
carry0987/i18n 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 235 次下载、GitHub Stars 达 2, 最近一次更新时间为 2023 年 11 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「i18n」 「language」 「php-i18n」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 carry0987/i18n 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 carry0987/i18n 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 carry0987/i18n 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Texy converts plain text in easy to read Texy syntax into structurally valid (X)HTML. It supports adding of images, links, nested lists, tables and has full support for CSS. Texy supports hyphenation of long words (which reflects language rules), clickable emails and URL (emails are obfuscated again
Easy to use i18n translation PHP class for multi-language websites
Package for convenient work with Laravel's localization features
Store your language lines in the database, yaml or other sources
A custom URL rule class for Yii 2 which allows to create translated URL rules
Set Links with a specific language parameter
统计信息
- 总下载量: 235
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 20
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-11-09