0

社区。

我一直在寻找答案,但与这种情况还不够接近

我有这样的代码(实际上工作正常):

array('desc'=>'Home')

它正在将其定义为文本(主页),但由于多语言站点,我宁愿将其用作 PHP 变量。使用语言包,我有一个变量,例如:

$lang['HOME'] = 'Home';

因此,根据选择的语言,值会发生变化

换句话说,我需要数组将变量值作为元素

array('desc'=>'variablehere')

谁能让我知道我错过了什么?我试图将其设置为变量、回声等其他方式。

非常感谢!

4

3 回答 3

1

像这样?

$myArray = array('desc' => $variable);

或者

$myArray = array(
    'desc' => $desc,
    'name' => $name
);

在你的情况下:

$lang = array('HOME' => $homeVariable);
于 2013-11-01T15:16:44.930 回答
0

使用多维数组。例如,给定类似的东西

$lang = 'en';
$key = 'desc';

确切的数组结构取决于您的需要,但它可以主要通过语言,也可以通过键翻译:

基于语言:

$translations = array(
   'en' => array('desc' => 'foo'),
   'fr' => array('desc' => 'bar')
);

$text_to_display = $translations['en']['desc']; // produces 'foo'

或者

$translations = array(
    'desc' => array(
        'en' => array('desc' => 'foo'),
        'fr' => array('desc' => 'bar')
    )
)

$text_to_display = $translations['desc']['fr']; // produces 'bar'
于 2013-11-01T15:21:05.557 回答
0

改用翻译功能:

// It can be key-based, i.e., t('home_string'), or literal like below
t('Home');


function t($text, $language = NULL)
{
    if (!$language) {
        // determine visitor's language
    }

    // look up translation in db/file
    // if none found just return $text as is

}
于 2013-11-01T15:23:09.097 回答