我正在尝试生成具有三种不同翻译版本的三个pdf文件
翻译存储在目录中以其语言前缀命名的文件中
lang/pl/global.php
lang/en/global.php
lang/de/global.php
然后将翻译存储在GLOBAL VARIABLES中,例如:
define("SOMEVAR", "SOME VALUE PL"); // for lang/pl/global.php
define("SOMEVAR", "SOME VALUE EN"); // for lang/en/global.php
define("SOMEVAR", "SOME VALUE DE"); // for lang/de/global.php
在某些函数foo()的结尾,我试图调用同一个函数translate()三次,以生成3个翻译的pdf文件。打电话之前,我需要从上面列出的目录结构中进行翻译。看起来像:
require('lang/pl/global.php');
translate('pl');
require('lang/en/global.php');
translate('en');
require('lang/de/global.php');
translate('de');
但是当我尝试从translate()函数内部打印SOMEVAR全局变量时,它仅返回第一个前缀转换(SOME VALUE PL)-因此,在这种情况下,它将是波兰语转换的3倍(3x SOME VALUE) PL)。将顺序更改为en / de / pl会产生三倍的英语翻译(3x SOME VALUE EN)。
我也尝试过将require()移到translate()函数的内部,但是我也没有得到结果。
有帮助吗?
答案 0 :(得分:1)
您似乎想做的是创建一个全局变量,它是一个数组,在这种情况下,您需要这样做:
$selectedLanguages = [];
$selectedLanguages[] = "pl";
$selectedLanguages[] = "en";
$selectedLanguages[] = "de";
然后,当您要根据需要调用它时,请执行以下操作:
global $selectedLanguages;
foreach($selectedLanguages as $language) {
require('lang/' . $language . '/global.php');
// Do stuff with your translation here.
}