<?php
$cases = [
'key' => [
'en' => 'a key',
'it' => 'una chiave',
],
'key_no_fallback' => [
'en' => 'not exists in language, return a key from fallback',
],
// deep
'key_deep' => [
'en' => [
'deep' => [
'deep' => 'key deep',
],
],
'it' => [
'deep' => [
'deep' => 'chiave deep',
],
],
],
'key_inline.deep.inline' => [
'en' => 'key deep in line',
'it' => 'chiave deep in linea',
],
// context
'key_context' => [
'en' => 'key with context',
'it' => 'chiave con contesto',
],
// replacer
'key_interpolate' => [
'en' => '{{what}} is {{how}}',
'it' => '{{what}} è {{how}}',
],
// replacer
'key_interpolate_array' => [
'en' => 'I am {{author.name}} and i have {{author.age}} years old',
'it' => 'Io sono {{author.name}} ed ho {{author.age}} anni',
],
// simple plurals
'friend' => [
'en' => 'A friend',
'it' => 'Un conoscente',
'ro' => 'Un prieten',
],
'friend_male' => [
'en' => 'A boyfriend',
'it' => 'Un amico',
],
'friend_female' => [
'en' => 'A girlfriend',
'it' => "Un'amica",
],
'friend_male_plural' => [
'en' => 'boyfriends',
'it' => 'amici',
],
'friend_female_plural' => [
'en' => 'girlfriends',
'it' => 'amiche',
],
'friend_male_withCount_plural' => [
'en' => '{{count}} boyfriends',
'it' => '{{count}} amici',
],
'friend_female_withCount_plural' => [
'en' => '{{count}} girlfriends',
'it' => '{{count}} amiche',
],
// unescape
'key_escaped' => [
'en' => 'no danger {{myVar}}',
],
'key_unescaped' => [
'en' => 'no danger {{-myVar}}',
],
// format
'key_format_date' => [
'en' => 'The current date is {{date, MM/DD/YYYY}}',
],
'key_format_uppercase' => [
'en' => '{{text, uppercase}} just uppercased',
],
'key_format_lowercase' => [
'en' => '{{text, lowercase}} just lowercased',
],
'key_format_ucfirst' => [
'en' => '{{text, ucfirst}} just ucfirst',
],
// multiple plural syntax
'key_0' => ['en' => 'zero'],
'key_1' => ['en' => 'one'],
'key_2' => ['en' => 'two'],
'key_3' => ['en' => 'few'],
'key_4' => ['en' => 'many'],
'key_5' => ['en' => 'other'],
// nesting simple
'nesting1' => ['en' => '1 $t(nesting2)'],
'nesting2' => ['en' => '2 $t(nesting3)'],
'nesting3' => ['en' => '3'],
// nesting complex
'girlsAndBoys' => ['en' => '$t(girls, {"count": {{girls}} }) and {{count}} boy'],
'girlsAndBoys_plural' => ['en' => '$t(girls, {"count": {{girls}} }) and {{count}} boys'],
'girls' => ['en' => '{{count}} girl'],
'girls_plural' => ['en' => '{{count}} girls'],
// nesting value + interpolate
'key_nesting_interpolate1' => ['en' => 'hello world'],
'key_nesting_interpolate2' => ['en' => 'say {{val}}'],
//
'test_other_language' => [
'en' => 'other language',
'it' => 'altro linguaggio',
'ro' => 'alta limba',
],
'test_other_language_single_key' => [
'ro' => 'alta limba',
],
'atk4_model' => [
'en' => 'user : {{first_name}} {{last_name}} with email : {{email}}',
'it' => 'utente : {{first_name}} {{last_name}} con email : {{email}}',
],
'atk4_model_object' => [
'en' => 'user : {{user.first_name}} {{user.last_name}} with email : {{user.email}}',
'it' => 'utente : {{user.first_name}} {{user.last_name}} con email : {{user.email}}',
],
'atk4_model_object2' => [
'en' => 'user : {{user.first_name}} {{user.last_name}} with email : {{address.email}}',
'it' => 'utente : {{user.first_name}} {{user.last_name}} con email : {{address.email}}',
],
'key4_interval' => [
'en' => '(1){one item};(2-7){a few items};(7-inf){a lot of items};',
],
];
$path_def = [];
foreach ($cases as $key => $code_def) {
foreach ($code_def as $code => $def) {
$chunk3 = substr($key, 0, 3);
switch ($chunk3) {
case 'gir':
case 'fri':
$file_name = 'friend';
break;
case 'nes':
$file_name = 'nesting';
break;
case 'tes':
$file_name = 'other_test';
break;
case 'key':
$file_name = 'key';
break;
case 'atk':
$file_name = 'atk';
break;
default:
$file_name = $key;
$key = key($def);
$def = current($def);
break;
}
$path_def[$code.'/'.$file_name.'.json'][$key] = $def;
}
}
$namespaced = [
'namespace1' => [
'en' => ['nskey' => 'namespace1 key'],
'it' => ['nskey' => 'namespace1 chiave'],
],
'namespace2' => [
'en' => ['nskey' => 'namespace2 key'],
'it' => ['nskey' => 'namespace2 chiave'],
],
'namespace3' => [
'en' => ['nskey' => 'namespace3 key'],
'it' => ['nskey' => 'namespace3 chiave'],
],
];
foreach ($namespaced as $namespace => $code_def) {
foreach ($code_def as $code => $def) {
foreach ($def as $key => $value) {
$path_def[$code.'/'.$namespace.'.json'][$key] = $value;
}
}
}
|