nobox / lazy-strings
从Google Docs电子表格创建本地化字符串。
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 4.8.*
README
从Google Docs电子表格创建本地化字符串。
安装
将Lazy Strings添加到您的composer.json文件中。
composer require nobox/lazy-strings
使用
使用以下设置创建LazyStrings的一个实例。
$lazyStrings = new LazyStrings([ 'url' => 'http://docs.google.com/spreadsheets/d/1V_cHt5Fe4x9XwVepvlXB39sqKXD3xs_QbM-NppkrE4A/export?format=csv', 'sheets' => [ 'en' => 0, ], 'target' => 'path/to/strings/folder', 'backup' => 'path/to/strings/folder', 'nested' => true ]);
使用generate();方法生成字符串。
$lazyStrings->generate();
设置
以下是对每个设置键项的描述。
url
添加Google电子表格发布的URL。这应该在“文件”>“发布到网络...”中进行,将“pubhtml”替换为末尾的“export?format=csv”,并在URL中使用“http”。请记住,此文档必须对任何人可访问。在“共享设置”中使用“公开于网络”。如果不这样做,Lazy Strings将无法解析它。
'url' => 'http://docs.google.com/spreadsheets/d/1V_cHt5Fe4x9XwVepvlXB39sqKXD3xs_QbM-NppkrE4A/export?format=csv'
sheets
在此处,您将指定Google文档中的所有工作表(如果不止一个)及其id,每个id与区域设置分开。如果为区域设置使用多个工作表,请使用数组。例如
'sheets' => [ 'en' => [0, 1626663029], 'es' => 1329731586, 'pt' => 1443604037 ]
您可以从电子表格中使用Google文档URL的“gid”变量获取id。例如,在这个电子表格中:https://docs.google.com/a/nobox.com/spreadsheets/d/1V_cHt5Fe4x9XwVepvlXB39sqKXD3xs_QbM-NppkrE4A/edit#gid=1626663029,其id是1626663029。
target
在此处,您必须指定一个存储翻译的路径。
'target' => 'path/to/strings/folder'
使用这些设置,它将在path/to/strings/folder中生成以下翻译文件。
├── folder/
│ ├── en/
│ │ ├── lazy.php
│ ├── es/
│ │ ├── lazy.php
│ ├── pt/
│ │ ├── lazy.php
backup
在此处,您必须指定一个存储JSON格式翻译的路径。类似于字符串的“备份”。
'backup' => 'path/to/strings/folder'
使用这些设置,它将在path/to/strings/folder中生成以下翻译文件。
├── folder/
│ ├── es.json
│ ├── en.json
│ ├── pt.json
nested
指定您是否希望您的翻译数组是嵌套的。
'nested' => true
如果您将嵌套设置用作true,则您的翻译将看起来像这样
<?php return array ( 'title' => 'Your page title', 'tagline' => 'Your page tagline', 'laravel' => 'PHP Framework', 'header' => array ( 'hero' => array ( 'headline' => 'Hero headlines', 'subject' => 'Main hero subject', ), ), );
和像这样使用false。
<?php return array ( 'title' => 'Your page title', 'tagline' => 'Your page tagline', 'laravel' => 'PHP Framework', 'header.hero.headline' => 'Hero headlines', 'header.hero.subject' => 'Main hero subject', );
工作原理
Lazy Strings使用id => value约定来访问副本,它在指定的语言区域设置文件夹内生成一个lazy.php文件。您可以在这里查看一个示例文档。
使用此示例文档(具有嵌套翻译),您可以像这样访问第一行
$locale = 'en'; $strings = require 'path/to/strings/folder/'.$locale.'/lazy.php'; echo $strings['title']; // Returns "Your page title"
许可证
MIT