Добавление переменных в значение.ini файла

Я тестирую способ выполнения наших переводов через.ini файлы для каждого языка. Тестовый сайт можно найти здесь, простите URL: www.exodus-squad.com

Однако в правом окне я хочу отобразить следующий текст:

Благодаря стремлению сократить выбросы, которые продолжают расти, электрические и гибридные технологии приближаются к центральной стадии. В 2015 году Engine Expo снова будет принимать Электрический и гибридный павильон!

Но фразы 2015 и Engine Expo являются переменными в файле конфигурации PHP. В настоящее время раздел в моем файле.ini выглядит следующим образом:

[pavilion]
texta  = "With the drive to reduce emissions continuing to gather pace, electric and hybrid technologies are moving closer to centre stage. In "
textb  = ", "
textc  = " will once again host the Electric & Hybrid Pavilion!"

и мой код на странице выглядит следующим образом:

<p>
    <?=$i['pavilion']['texta'];?>
    <?=$year?>
    <?=$i['pavilion']['textb'];?>
    <?=$show?>
    <?=$i['pavilion']['textc'];?>
</p>

но разразиться и вернуться в абзац текста является проблемой, однако, особенно когда речь заходит о наличии других языков с запятыми в разных местах или переупорядоченных словах и т.д. В идеале я хотел бы сделать что-то вроде этого:

texta  = "With the drive to reduce emissions continuing to gather pace, electric and hybrid technologies are moving closer to centre stage. In " . $year . ", " . $show . " will once again host the Electric &amp; Hybrid Pavilion!"

Или:

texta  = "With the drive to reduce emissions continuing to gather pace, electric and hybrid technologies are moving closer to centre stage. In {$year}, {$show} will once again host the Electric &amp; Hybrid Pavilion!"

Но ни один из них не является допустимым синтаксисом. Кто-нибудь знает возможно ли это?


РЕДАКТИРОВАТЬ

Получив пару ответов, мой.ini файл теперь выглядит так:

texta  = "With the drive to reduce emissions continuing to gather pace, electric and hybrid technologies are moving closer to centre stage. In %d, %s will once again host the Electric &amp; Hybrid Pavilion!"

и мой код выглядит так:

<?=sprintf($i['pavilion']['texta'], $year, $show); ?>

но это просто печатает переменные после?

Благодаря стремлению сократить выбросы, которые продолжают расти, электрические и гибридные технологии приближаются к центральной стадии. В% d,% s снова будет принимать Электрический и гибридный павильон! 2015Engine Expo

EDIT # 2

Это мой код parse_ini_file():

$find_lang = $_SERVER['REQUEST_URI'];
if (strpos($find_lang, '/fr/') !== false) {
    $lang = 'fr';
}
else if (strpos($find_lang, '/de/') !== false) {
    $lang = 'de';
}
else if (strpos($find_lang, '/it/') !== false) {
    $lang = 'it';
}
else {
    $lang = 'en';
}

$i = parse_ini_file($lang . ".ini", true);

EDIT # 3

Я даже попытался немного сломать код, поэтому сначала создается переменная $texta, затем повторяется на странице через sprintf(), но результат остается таким же:

<?php
$texta = $i['pavilion']['texta'];
echo sprintf($texta, $year, $show);
?>

Работает! Спасибо вам всем.

+1
источник поделиться
2 ответа

Вы можете использовать sprintf, он позволяет помещать заполнители в текст, который вы можете заполнить позже. И это может сделать намного больше, это действительно полезно... Вы можете даже использовать пронумерованные заполнители, поэтому их порядок можно изменить - очень удобно для переводов.

Например:

texta = "Blah Blah Blah %d Blah Blah %s"

А затем в вашем коде:

<p>
    <?=sprintf($i['pavilion']['texta'], $year, $show)?>
</p>
+1
источник

Вы можете использовать форматировщик строк: http://www.php.net/sprintf

text="First part %s second part %s last part";

Затем в вашем файле эха:

<?php echo sprintf($i['pavilion']['text'], $year, $show);?>

+1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос