Skip to content

Conversation

@Petrakeas
Copy link
Contributor

@Petrakeas Petrakeas commented Jun 18, 2021

TxNative#fetchTranslations() and the CLI allow specifying a set
of tags so that only strings that have all these tags are fetched.

TxNative kept the original fetchTranslations() method without the "tags" argument for
backwards compatibility. A new fetchTranslations() method with the tags argument has been added.

All related CDSHandler methods accept a "tags" argument that is nullable.
If not null, getLocationForLocale() converts the set of tags to URL query parameters
and URL escapes them.

TranslationsDownloader#downloadTransations() can now accept a "tags" argument.

Utils#urlEncode method was introduced that use URLEncoder and further replaces the
escaped space with "%20" so that it's ok to use with URLS and not HTML forms, which is
what URLEncoder was designed for.

LocaleData#appendTags() accepts a set instead of a string array.

Readme now mentions the ability to filter the fetched strings by tag.

Unit tests have been added.

@Petrakeas Petrakeas requested a review from dbendilas June 18, 2021 10:02
Copy link

@dbendilas dbendilas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Just one thing

"source locale can also be included.", paramLabel = "<locale>")
String[] translatedLocales;

@Option(names = {"--fetch-tags"}, arity = "0..",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's use --with-tags-only for consistency, as defined in the Python/Django push command.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!

Updated readme.md and readme.html regarding these changes.

Updated the CLI command description regarding the source strings.

Updated CDSHanlder and CDSHanlderAndroid documentation regarding the source strings.

NativeCore configures CDSHandlerAndroid so that both the translated and the source locales
are downloaded. The translate methods can now serve source strings from the cache and
fall back to the Android provided source strings. The following helper methods have been
created for this purpose: getSourceString(), getSourceQuantityString(). They are used when
the current locale is the source locale and when feeding a source string to the MissingPolicy.

getLocalizedQuantityString() used to follow the plural rules of the current locale. Now it follows
the plural rules of the locale of the provided Resources instance. This way, the method can be
used for the source locale rules or the current locale rules. The method has been made static.

mDefaultResources has been removed as it is not needed.

TxResourcesh has a getWrappedResources() method

A warning has been added to Utils#getDefaultLocaleResources()

Several unit tests have been added to NativeCoreTest to test the usage of source strings
provided by the cache when the source locale is used and when source missing policy is used.
Previous tests have been updated due to the changes in NativeCore methods.
@Petrakeas Petrakeas force-pushed the petrakeas/fetch_with_tags branch from 3c25c4b to 9dc6af0 Compare June 18, 2021 13:19
Copy link

@dbendilas dbendilas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👌

@Petrakeas Petrakeas merged commit 7e971d6 into devel Jun 18, 2021
@Petrakeas Petrakeas deleted the petrakeas/fetch_with_tags branch June 18, 2021 13:21
@wyngarde wyngarde mentioned this pull request Jun 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants