Comment utiliser nginx pour délivrer des UI Angular multilingues I18N avec @angular/localize
Ceci est ma configuration nginx qui sert automatiquement une UI Angular internationalisée multilingue de et en via Docker.
Si l’utilisateur n’a pas déjà accédé à une version linguistique spécifique du site, il sera redirigé vers la version correspondant aux paramètres de langue de son navigateur (ou par défaut de).
Lors de l’ajout de langues supplémentaires, vous devez mettre à jour le fichier nginx.conf en copiant un nouveau bloc location pour la langue supplémentaire, plus la ligne $accept_language pour accepter automatiquement une nouvelle langue.
Fichier de configuration Nginx
nginx_i18n_conf.conf
map $http_accept_language $accept_language {
~*^de de;
~*^en en;
default de;
}
server {
listen 80 default_server;
root /app/browser;
index index.html;
# Désactiver les logs d'accès et d'erreur
access_log off;
error_log /var/log/nginx/error.log;
# Rediriger "/" vers l'application Angular dans la langue préférée du navigateur
add_header Cache-Control "public, max-age=180";
# Servir les langues individuelles
location /en/ {
try_files $uri$args /en/index.html?$args;
}
location /de/ {
try_files $uri$args /de/index.html?$args;
}
# Rediriger vers la langue par défaut
location = / {
return 302 /$accept_language/;
}
# Rediriger les autres URLs vers la langue par défaut
location / {
return 302 /$accept_language/$uri$args;
}
}Script de build Angular
Appelez ce script shell juste avant de construire l’image Docker
build_angular_i18n.sh
ng build --aot --named-chunks=true --optimization --output-hashing=all --stats-json $@Dockerfile
Dockerfile
FROM nginx:1.27.5-alpine-slim
WORKDIR /app
# Copier la configuration
COPY nginx.conf /etc/nginx/conf.d/default.conf
# Copier les fichiers dist vers /app
COPY dist/mytheme/. ./If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow