Comments (3)
localisation service
new variable:
languageChanged = new Subject();
with...
import { Subject } from 'rxjs';
new method:
public changeLanguage():void {
this.languageChanged.next();
}
l10n component
if (current_language !== language) {
this.localizationService.changeLanguage();
}
each constructor now subscribes...
constructor(
private localizationService: LocalizationService,
private cvItemService: CvItemService,
) {
this.localizationService.languageChanged.subscribe(() => { this.getLocalization() });
}
header component has to nuke the existing navLinks
private populateNavLinks(): void {
this.navLinks.splice(0, this.navLinks.length);
(etc)
...and constructor has a slightly different method
this.localizationService.languageChanged.subscribe(() => { this.getAllItems(); }
getAllItems replaces ngOnInit, which calls it:
private getAllItems(): void {
this.getLocalization();
this.getFeatureToggles();
this.getItems();
this.populateNavLinks();
}
ngOnInit() {
this.getAllItems();
}
from angularcv.
Realised that it's more efficient to not call getLocalization() each time, but just pass the data back.
this.localizationService.changeLanguage(language);
then
public changeLanguage(language):void {
this.languageChanged.next(L10N[language]);
}
with, for each ...component.ts
constructor(
private localizationService: LocalizationService,
private cvItemService: CvItemService
) {
this.localizationService.languageChanged.subscribe((data) => { this.l10n = data });
}
header.component.ts can be simplified, with the original ngOnInit(), with constructor
constructor(
private localizationService: LocalizationService,
private featureToggleService: FeatureToggleService,
private cvItemService: CvItemService,
) {
this.localizationService.languageChanged.subscribe(
(data) => {
this.l10n = data;
this.populateNavLinks();
});
}
from angularcv.
@tobyharding Thank you for your guide how to achieve the language change without reload, that was very helpful!
from angularcv.
Related Issues (20)
- Align version in package.json with git tag
- Display version from package.json on 'about' page
- Fix test execution in CI pipeline HOT 1
- Add Korean
- Evaluate PDF generation
- Add badges in Readme
- raise test coverage
- Upgrade to Angular 8
- Replace "IcoMoon Free" with "simple-icons"? HOT 1
- use proper Internationalization by official Angular guide HOT 1
- Infrastructure as Code HOT 8
- Run Lighthouse Audit HOT 2
- Enable PWA HOT 1
- Improve PDF export design HOT 2
- Add Chinese
- Add Swedish
- Create GitHub Action pipeline to potentially replace Travis
- Add GitLab Pages deployment guide
- Refine HTTP Headers
- Fix coverage reporting in CI
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from angularcv.