Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incremental and hierarchical fallback #39

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

cdjackson
Copy link

This supports three levels of fallback. The requested locale, falling back to the fallback locale and then the default. This allows incremental localisation files, so, for example, you can have de-CH as a swiss localisation with just a few Swiss phrases, over-riding de-DE for the main German language localisation, and then the fallback of en-US for anything not in these files.

This builds the hierarchical locale list in the setLocale method then it loads all files when they are first requested to avoid any issues later.

This PR also includes #38 which adds locale names to the configuration list.

(#30)

Review on Reviewable

This adds the locale name to the array, thus allowing the same array
to be used as input to user locale selection, or feedback.
This allows three levels of fallback. The requested locale, falling back to the fallback locale
and then the default. This allows incremental localisation files, so, for example, you can have
de-CH as a swiss localisisation, overiding de-DE for the main German localisation, and
then the fallback of en-US for anything not in these files.
…zation into local-fallback

Conflicts:
	dist/angular-localization.js
	dist/angular-localization.min.js
	dist/angular-localization.min.js.gz
	dist/angular-localization.min.map
	src/localization.js
The path into deference object needs to include the locale to ensure all promises are resolved.
@cdjackson
Copy link
Author

I've updated this PR to merge your latest changes and resolve the conflicts. I've also fixed a small bug in the fallback routine associated with resolving all the promises as the deferred path previously didn't include the locale which meant that resolving the promise didn't work correctly.

I've also fixed the fallback tests and added some new test cases.

@ssj3sunny
Copy link

+1

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.

2 participants