From ef8b01bf5f4c7c2dba44348623d607a6c00a781b Mon Sep 17 00:00:00 2001 From: Phillip Johnsen Date: Fri, 29 Jan 2016 22:51:03 +0100 Subject: [PATCH 1/3] nodejs.org: falling back to english when page hasn't been translated. Refs https://github.com/nodejs/nodejs.org/pull/490 --- setup/www/resources/config/nodejs.org | 34 ++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/setup/www/resources/config/nodejs.org b/setup/www/resources/config/nodejs.org index b568a4e73..59e571080 100644 --- a/setup/www/resources/config/nodejs.org +++ b/setup/www/resources/config/nodejs.org @@ -40,7 +40,11 @@ server { default_type text/plain; index index.html; + error_page 404 @localized_404; + location / { + try_files $uri $uri/ @english_fallback; + location ~ \.json$ { add_header access-control-allow-origin *; } @@ -55,6 +59,19 @@ server { add_header access-control-allow-origin *; } } + + # instead of serving a 404 page when a page hasn't been translated + location @english_fallback { + if ($uri ~* ^/(it|ko)/) { + set $lang $1; + } + rewrite ^/(it|ko)/(.*)$ http://nodejs.org/en/$2; + } + + # serve a localized 404 page if we've got $lang set from @english_fallback + location @localized_404 { + try_files /$lang/404.html /en/404.html; + } } server { @@ -190,7 +207,7 @@ server { gzip_disable "MSIE [1-6]\."; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; - error_page 404 /en/404.html; + error_page 404 @localized_404; root /home/www/nodejs; default_type text/plain; @@ -199,11 +216,26 @@ server { location / { rewrite ^/$ /en/ redirect; + try_files $uri $uri/ @english_fallback; + location ~ \.json$ { add_header access-control-allow-origin *; } } + # instead of serving a 404 page when a page hasn't been translated + location @english_fallback { + if ($uri ~* ^/(it|ko)/) { + set $lang $1; + } + rewrite ^/(it|ko)/(.*)$ https://nodejs.org/en/$2; + } + + # serve a localized 404 page if we've got $lang set from @english_fallback + location @localized_404 { + try_files /$lang/404.html /en/404.html; + } + location /documentation/ { rewrite ^/documentation/api(.*)$ /api$1 permanent; } From c7d58f4b5353670201020aac016fa3141d6b5b0b Mon Sep 17 00:00:00 2001 From: Phillip Johnsen Date: Fri, 3 Jun 2016 15:55:56 +0200 Subject: [PATCH 2/3] Use relative rewrite URLs in fallbacks --- setup/www/resources/config/nodejs.org | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup/www/resources/config/nodejs.org b/setup/www/resources/config/nodejs.org index 59e571080..65e2fcd7a 100644 --- a/setup/www/resources/config/nodejs.org +++ b/setup/www/resources/config/nodejs.org @@ -65,7 +65,7 @@ server { if ($uri ~* ^/(it|ko)/) { set $lang $1; } - rewrite ^/(it|ko)/(.*)$ http://nodejs.org/en/$2; + rewrite ^/(it|ko)/(.*)$ /en/$2; } # serve a localized 404 page if we've got $lang set from @english_fallback @@ -228,7 +228,7 @@ server { if ($uri ~* ^/(it|ko)/) { set $lang $1; } - rewrite ^/(it|ko)/(.*)$ https://nodejs.org/en/$2; + rewrite ^/(it|ko)/(.*)$ /en/$2; } # serve a localized 404 page if we've got $lang set from @english_fallback From 0704893a80e0b9dfcffc52587f6f8a659eb88286 Mon Sep 17 00:00:00 2001 From: Phillip Johnsen Date: Sat, 4 Jun 2016 14:24:58 +0200 Subject: [PATCH 3/3] Add locale zh-cn --- setup/www/resources/config/nodejs.org | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/setup/www/resources/config/nodejs.org b/setup/www/resources/config/nodejs.org index 65e2fcd7a..7ce1f7da2 100644 --- a/setup/www/resources/config/nodejs.org +++ b/setup/www/resources/config/nodejs.org @@ -62,10 +62,10 @@ server { # instead of serving a 404 page when a page hasn't been translated location @english_fallback { - if ($uri ~* ^/(it|ko)/) { + if ($uri ~* ^/(it|ko|zh-cn)/) { set $lang $1; } - rewrite ^/(it|ko)/(.*)$ /en/$2; + rewrite ^/(it|ko|zh-cn)/(.*)$ /en/$2; } # serve a localized 404 page if we've got $lang set from @english_fallback @@ -225,10 +225,10 @@ server { # instead of serving a 404 page when a page hasn't been translated location @english_fallback { - if ($uri ~* ^/(it|ko)/) { + if ($uri ~* ^/(it|ko|zh-cn)/) { set $lang $1; } - rewrite ^/(it|ko)/(.*)$ /en/$2; + rewrite ^/(it|ko|zh-cn)/(.*)$ /en/$2; } # serve a localized 404 page if we've got $lang set from @english_fallback