diff --git a/headers/private/locale/DefaultCatalog.h b/headers/private/locale/DefaultCatalog.h index 34d17ebdc8..0b52305b43 100644 --- a/headers/private/locale/DefaultCatalog.h +++ b/headers/private/locale/DefaultCatalog.h @@ -44,6 +44,8 @@ class DefaultCatalog : public BHashMapCatalog { status_t WriteToAttribute(entry_ref *appOrAddOnRef); status_t WriteToResource(entry_ref *appOrAddOnRef); + status_t SetRawString(const CatKey& key, const char *translated); + static BCatalogAddOn *Instantiate(const char *signature, const char *language, uint32 fingerprint); static BCatalogAddOn *InstantiateEmbedded(entry_ref *appOrAddOnRef); diff --git a/src/bin/locale/linkcatkeys.cpp b/src/bin/locale/linkcatkeys.cpp index 2780f5840a..47bd1ab089 100644 --- a/src/bin/locale/linkcatkeys.cpp +++ b/src/bin/locale/linkcatkeys.cpp @@ -128,12 +128,8 @@ main(int argc, char **argv) const CatKey fixedCatKey(keyString.String(), keyComment.String(), keyContext.String()); - BString translatedString = walker.GetValue(); - - if (!targetCatImpl->GetString(fixedCatKey)) { - targetCatImpl->SetString(fixedCatKey, - translatedString.String()); - } + if (!targetCatImpl->GetString(fixedCatKey)) + targetCatImpl->SetRawString(fixedCatKey, walker.GetValue()); walker.Next(); } } diff --git a/src/kits/locale/DefaultCatalog.cpp b/src/kits/locale/DefaultCatalog.cpp index d9eecb18f1..997060c4c3 100644 --- a/src/kits/locale/DefaultCatalog.cpp +++ b/src/kits/locale/DefaultCatalog.cpp @@ -146,6 +146,13 @@ DefaultCatalog::~DefaultCatalog() } +status_t +DefaultCatalog::SetRawString(const CatKey& key, const char *translated) +{ + return fCatMap.Put(key, translated); +} + + status_t DefaultCatalog::ReadFromFile(const char *path) { diff --git a/src/tools/locale/DefaultCatalog.cpp b/src/tools/locale/DefaultCatalog.cpp index 3510fc2b49..4075bc9387 100644 --- a/src/tools/locale/DefaultCatalog.cpp +++ b/src/tools/locale/DefaultCatalog.cpp @@ -107,6 +107,13 @@ DefaultCatalog::~DefaultCatalog() } +status_t +DefaultCatalog::SetRawString(const CatKey& key, const char *translated) +{ + return fCatMap.Put(key, translated); +} + + status_t DefaultCatalog::ReadFromFile(const char *path) { diff --git a/src/tools/locale/linkcatkeys.cpp b/src/tools/locale/linkcatkeys.cpp index 6fe3d6a20a..51f731a747 100644 --- a/src/tools/locale/linkcatkeys.cpp +++ b/src/tools/locale/linkcatkeys.cpp @@ -111,12 +111,9 @@ main(int argc, char **argv) BHashMapCatalog::CatWalker walker(&inputCatalog); while (!walker.AtEnd()) { const CatKey &key(walker.GetKey()); - BString translatedString = walker.GetValue(); - if (!targetCatImpl.GetString(key)) { - targetCatImpl.SetString(key, - translatedString.String()); - } + if (!targetCatImpl.GetString(key)) + targetCatImpl.SetRawString(key, walker.GetValue()); walker.Next(); } }