使用不同的资源文件(* .resx),如何通过提供显式本地化来检索本地化值。
也就是说,通常我可以使用custom-tool-namespace.Resource.localizedAttribute直接引用该属性。
它将给出的值取决于为CurrentCulture设置的本地化(线程方式)。但与此不同的是,我想将本地化交给资源获取者。这可能吗?
答案 0 :(得分:24)
假设您有多个资源文件:
Messages.resx
Messages.fr-FR.resx
...
Messages.xx-XX.resx
包含一些字符串值,您可以检索特定文化的值:
var culture = new CultureInfo("fr-FR");
string value = Messages.ResourceManager.GetString("SomeKey", culture);
,这将与当前线程文化的价值无关。
答案 1 :(得分:0)
更好的做法是使用 nameof 来保持智能感知并避免键入错误
$resource = $this->pohodaDatabase->query(
"SELECT S.IDS, S.RefStruct, ISNULL(S.StavZ - S.ObjedP, 0) AS quantity
FROM SKz S
WHERE S.IDS IN ('092COž01', '00XXž004', '041SE010-0240')" . $where
);
$productStocksDataWrapper = array();
var_dump($this->pohodaDatabase->rows($resource)); // int(0)
var_dump($this->pohodaDatabase->getLastQuery()); //SELECT S.IDS,S.RefStruct, ISNULL(S.StavZ - S.ObjedP, 0) AS quantity
FROM SKz S
WHERE S.IDS IN ('092COž01', '00XXž004', '041SE010-0240') //
while ($row = $this->pohodaDatabase->fetch_assoc($resource)) {
var_dump($row); // only 041SE010-0240
$productStocksData = new PohodaProductStocksData();
$productStocksData
->setCatnum($row['IDS'])
->setPohodaWarhouseExtId($row['RefStruct'])
->setQuantity($row['quantity']);
$productStocksDataWrapper[] = $productStocksData;
}
var_dump($productStocksDataWrapper); // just 041SE010-0240
die();