Это довольно простой, но у меня нет кусочка головоломки.Локализовать маркеры в PHP Array
У меня есть многомерный массив PHP, который, среди прочего, содержит некоторые строки. Я хотел бы перевести специальные строки в этом массиве на основе таблицы перевода или массива в PHP.
$r = array(
0 => 'something',
1 => array(
'othertext' => '1000 {{animals}} and {{cars}}',
'anytext' => '400 {{cars}}',
)
);
В $ г, теперь я хотел бы заменить {{}} животных с другой строкой, которая хранится в отдельном массиве.
Здесь:
$translations = array(
'animals' => array('Tiere','animaux','bestie'),
'cars' => array('Autos','voitures','macchine'),
);
Теперь давайте установим язык/столбец, который мы хотим посмотреть
$langId = 0;
И теперь, взять $ г, обратите внимание на все клавиши, которые завернутые в {{}}, просмотрите их в $ translations и замените их ключом [$ langId], поэтому мы получим:
$r = array(
0 => 'something',
1 => array(
'othertext' => '1000 Tiere',
'anytext' => '400 Autos',
)
);
ehm ... как это делается?
PS: маркер {{}} является случайным, может быть что-нибудь надежного
Вы можете сделать preg_replace_callback(), но, возможно, сделать это до окончательного вывода строки (ов) не как они сидят в массиве. ..просто мысль. – Rasclatt
Что-то вроде этого? http://stackoverflow.com/a/11174818/160968 – Urs
Да, вы разобрали финальную строку и вычислили замены в функции обратного вызова – Rasclatt