Try to load resource-embedded catalog from application. Should fix #8037.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42950 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -65,20 +65,29 @@ DefaultCatalog::DefaultCatalog(const char *signature, const char *language,
|
|||||||
:
|
:
|
||||||
BHashMapCatalog(signature, language, fingerprint)
|
BHashMapCatalog(signature, language, fingerprint)
|
||||||
{
|
{
|
||||||
// give highest priority to catalog living in sub-folder of app's folder:
|
status_t status;
|
||||||
|
|
||||||
app_info appInfo;
|
app_info appInfo;
|
||||||
be_app->GetAppInfo(&appInfo);
|
be_app->GetAppInfo(&appInfo);
|
||||||
node_ref nref;
|
|
||||||
nref.device = appInfo.ref.device;
|
// give highest priority to catalog embedded as resource in application
|
||||||
nref.node = appInfo.ref.directory;
|
// executable:
|
||||||
BDirectory appDir(&nref);
|
status = ReadFromResource(&appInfo.ref);
|
||||||
BString catalogName("locale/");
|
|
||||||
catalogName << kCatFolder
|
// search for catalog living in sub-folder of app's folder:
|
||||||
<< "/" << fSignature
|
if (status != B_OK) {
|
||||||
<< "/" << fLanguageName
|
node_ref nref;
|
||||||
<< kCatExtension;
|
nref.device = appInfo.ref.device;
|
||||||
BPath catalogPath(&appDir, catalogName.String());
|
nref.node = appInfo.ref.directory;
|
||||||
status_t status = ReadFromFile(catalogPath.Path());
|
BDirectory appDir(&nref);
|
||||||
|
BString catalogName("locale/");
|
||||||
|
catalogName << kCatFolder
|
||||||
|
<< "/" << fSignature
|
||||||
|
<< "/" << fLanguageName
|
||||||
|
<< kCatExtension;
|
||||||
|
BPath catalogPath(&appDir, catalogName.String());
|
||||||
|
status = ReadFromFile(catalogPath.Path());
|
||||||
|
}
|
||||||
|
|
||||||
if (status != B_OK) {
|
if (status != B_OK) {
|
||||||
// search in data folders
|
// search in data folders
|
||||||
@@ -92,8 +101,8 @@ DefaultCatalog::DefaultCatalog(const char *signature, const char *language,
|
|||||||
for (size_t i = 0; i < sizeof(which) / sizeof(which[0]); i++) {
|
for (size_t i = 0; i < sizeof(which) / sizeof(which[0]); i++) {
|
||||||
BPath path;
|
BPath path;
|
||||||
if (find_directory(which[i], &path) == B_OK) {
|
if (find_directory(which[i], &path) == B_OK) {
|
||||||
catalogName = BString(path.Path())
|
BString catalogName(path.Path());
|
||||||
<< "/locale/" << kCatFolder
|
catalogName << "/locale/" << kCatFolder
|
||||||
<< "/" << fSignature
|
<< "/" << fSignature
|
||||||
<< "/" << fLanguageName
|
<< "/" << fLanguageName
|
||||||
<< kCatExtension;
|
<< kCatExtension;
|
||||||
|
|||||||
Reference in New Issue
Block a user