From 4b918abdb02a26a770d898594eaaccc6f1726e9b Mon Sep 17 00:00:00 2001 From: Niels Sascha Reedijk Date: Sun, 8 Mar 2020 12:04:28 +0000 Subject: [PATCH] Package Kit: internationalize strings that may be displayed to the user This fixes #14525. Change-Id: I25810a4e12caed7aa47717e278591b1716b6198c Reviewed-on: https://review.haiku-os.org/c/haiku/+/2329 Reviewed-by: Niels Sascha Reedijk --- headers/build/os/locale/Catalog.h | 1 + src/kits/package/Jamfile | 3 +++ src/kits/package/RefreshRepositoryRequest.cpp | 23 +++++++++++++------ src/kits/package/libpackage.rdef | 11 +++++++++ 4 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 src/kits/package/libpackage.rdef diff --git a/headers/build/os/locale/Catalog.h b/headers/build/os/locale/Catalog.h index e40cf6dff6..04da134bcc 100644 --- a/headers/build/os/locale/Catalog.h +++ b/headers/build/os/locale/Catalog.h @@ -6,6 +6,7 @@ #define _CATALOG_H_ #ifndef B_AVOID_TRANSLATION_MACROS +#define B_TRANSLATE(x) x #define B_TRANSLATE_MARK(x) x #define B_TRANSLATE_NOCOLLECT(x) x #endif diff --git a/src/kits/package/Jamfile b/src/kits/package/Jamfile index 4dee4cbd86..9eb761ebe4 100644 --- a/src/kits/package/Jamfile +++ b/src/kits/package/Jamfile @@ -1,5 +1,7 @@ SubDir HAIKU_TOP src kits package ; +AddResources libpackage.so : libpackage.rdef ; + UsePrivateHeaders app kernel @@ -144,6 +146,7 @@ DoCatalogs libpackage.so : x-vnd.Haiku-libpackage : PackageManager.cpp + RefreshRepositoryRequest.cpp ; HaikuSubInclude solver ; diff --git a/src/kits/package/RefreshRepositoryRequest.cpp b/src/kits/package/RefreshRepositoryRequest.cpp index d4f6d47484..24559ed37e 100644 --- a/src/kits/package/RefreshRepositoryRequest.cpp +++ b/src/kits/package/RefreshRepositoryRequest.cpp @@ -9,6 +9,7 @@ #include +#include #include #include @@ -23,6 +24,9 @@ #include "FetchFileJob.h" +#undef B_TRANSLATION_CONTEXT +#define B_TRANSLATION_CONTEXT "RefreshRepositoryRequest" + namespace BPackageKit { @@ -61,10 +65,10 @@ BRefreshRepositoryRequest::CreateInitialJobs() return result; BString repoChecksumURL = BString(fRepoConfig.BaseURL()) << "/" << "repo.sha256"; + BString title = B_TRANSLATE("Fetching repository checksum from %url"); + title.ReplaceAll("%url", fRepoConfig.BaseURL()); FetchFileJob* fetchChecksumJob = new (std::nothrow) FetchFileJob( - fContext, - BString("Fetching repository checksum from ") << fRepoConfig.BaseURL(), - repoChecksumURL, fFetchedChecksumFile); + fContext, title, repoChecksumURL, fFetchedChecksumFile); if (fetchChecksumJob == NULL) return B_NO_MEMORY; if ((result = QueueJob(fetchChecksumJob)) != B_OK) { @@ -80,9 +84,11 @@ BRefreshRepositoryRequest::CreateInitialJobs() // repo data to be fetched and cached for the future in JobSucceeded below. roster.GetRepositoryCache(fRepoConfig.Name(), &repoCache); + title = B_TRANSLATE("Validating checksum for %repositoryName"); + title.ReplaceAll("%repositoryName", fRepoConfig.Name()); ValidateChecksumJob* validateChecksumJob = new (std::nothrow) ValidateChecksumJob(fContext, - BString("Validating checksum for ") << fRepoConfig.Name(), + title, new (std::nothrow) ChecksumFileChecksumAccessor( fFetchedChecksumFile), new (std::nothrow) GeneralFileChecksumAccessor(repoCache.Entry(), @@ -126,9 +132,10 @@ BRefreshRepositoryRequest::_FetchRepositoryCache() if (result != B_OK) return result; BString repoCacheURL = BString(fRepoConfig.BaseURL()) << "/" << "repo"; + BString title = B_TRANSLATE("Fetching repository-cache from %url"); + title.ReplaceAll("%url", fRepoConfig.BaseURL()); FetchFileJob* fetchCacheJob = new (std::nothrow) FetchFileJob(fContext, - BString("Fetching repository-cache from ") << fRepoConfig.BaseURL(), - repoCacheURL, tempRepoCache); + title, repoCacheURL, tempRepoCache); if (fetchCacheJob == NULL) return B_NO_MEMORY; if ((result = QueueJob(fetchCacheJob)) != B_OK) { @@ -137,9 +144,11 @@ BRefreshRepositoryRequest::_FetchRepositoryCache() } // job validating the cache's checksum + title = B_TRANSLATE("Validating checksum for %repositoryName"); + title.ReplaceAll("%repositoryName", fRepoConfig.Name()); ValidateChecksumJob* validateChecksumJob = new (std::nothrow) ValidateChecksumJob(fContext, - BString("Validating checksum for ") << fRepoConfig.Name(), + title, new (std::nothrow) ChecksumFileChecksumAccessor( fFetchedChecksumFile), new (std::nothrow) GeneralFileChecksumAccessor(tempRepoCache)); diff --git a/src/kits/package/libpackage.rdef b/src/kits/package/libpackage.rdef new file mode 100644 index 0000000000..ebba51cd98 --- /dev/null +++ b/src/kits/package/libpackage.rdef @@ -0,0 +1,11 @@ +resource app_signature "application/x-vnd.Haiku-libpackage" ; + +resource app_version { + major = 1, + middle = 0, + minor = 0, + variety = 0, + internal = 0, + short_info = "1.0.0", + long_info = "Haiku libpackage." +};