Remove wip concept for languages (#51022)
This commit is contained in:
@@ -118,7 +118,6 @@ MyApp.getInitialProps = async (appContext: AppContext) => {
|
|||||||
for (const [langCode, langObj] of Object.entries(
|
for (const [langCode, langObj] of Object.entries(
|
||||||
req.context.languages as Record<string, LanguageItem>,
|
req.context.languages as Record<string, LanguageItem>,
|
||||||
)) {
|
)) {
|
||||||
if (langObj.wip) continue
|
|
||||||
// Only pick out the keys we actually need
|
// Only pick out the keys we actually need
|
||||||
languagesContext.languages[langCode] = {
|
languagesContext.languages[langCode] = {
|
||||||
name: langObj.name,
|
name: langObj.name,
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export const LanguagePicker = ({ xs, mediumOrLower }: Props) => {
|
|||||||
|
|
||||||
const { t } = useTranslation('picker')
|
const { t } = useTranslation('picker')
|
||||||
// Remember, in this context `languages` is only the active ones
|
// Remember, in this context `languages` is only the active ones
|
||||||
// that are available. I.e. no wip ones.
|
// that are available.
|
||||||
// Also, if the current context has a page and that page has own ideas
|
// Also, if the current context has a page and that page has own ideas
|
||||||
// about which languages it's available in (e.g. early-access)
|
// about which languages it's available in (e.g. early-access)
|
||||||
// it would already have been paired down.
|
// it would already have been paired down.
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { createContext, useContext } from 'react'
|
import { createContext, useContext } from 'react'
|
||||||
|
|
||||||
export type LanguageItem = {
|
export type LanguageItem = {
|
||||||
wip?: boolean
|
|
||||||
name: string
|
name: string
|
||||||
nativeName?: string
|
nativeName?: string
|
||||||
code: string
|
code: string
|
||||||
|
|||||||
@@ -44,14 +44,12 @@ function getRoot(languageCode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Languages in order of accept-language header frequency
|
// Languages in order of accept-language header frequency
|
||||||
// 92BD1212-61B8-4E7A: Remove `wip: Boolean` for the public ship of ko, fr, de, ru
|
|
||||||
const allLanguages = {
|
const allLanguages = {
|
||||||
en: {
|
en: {
|
||||||
name: 'English',
|
name: 'English',
|
||||||
code: 'en',
|
code: 'en',
|
||||||
hreflang: 'en',
|
hreflang: 'en',
|
||||||
dir: getRoot('en'),
|
dir: getRoot('en'),
|
||||||
wip: false,
|
|
||||||
},
|
},
|
||||||
zh: {
|
zh: {
|
||||||
name: 'Simplified Chinese',
|
name: 'Simplified Chinese',
|
||||||
@@ -60,7 +58,6 @@ const allLanguages = {
|
|||||||
hreflang: 'zh-Hans',
|
hreflang: 'zh-Hans',
|
||||||
redirectPatterns: [/^\/cn/, /^\/zh-\w{2}/],
|
redirectPatterns: [/^\/cn/, /^\/zh-\w{2}/],
|
||||||
dir: getRoot('zh-cn'),
|
dir: getRoot('zh-cn'),
|
||||||
wip: false,
|
|
||||||
},
|
},
|
||||||
es: {
|
es: {
|
||||||
name: 'Spanish',
|
name: 'Spanish',
|
||||||
@@ -68,7 +65,6 @@ const allLanguages = {
|
|||||||
code: 'es',
|
code: 'es',
|
||||||
hreflang: 'es',
|
hreflang: 'es',
|
||||||
dir: getRoot('es-es'),
|
dir: getRoot('es-es'),
|
||||||
wip: false,
|
|
||||||
},
|
},
|
||||||
pt: {
|
pt: {
|
||||||
name: 'Portuguese',
|
name: 'Portuguese',
|
||||||
@@ -77,7 +73,6 @@ const allLanguages = {
|
|||||||
hreflang: 'pt',
|
hreflang: 'pt',
|
||||||
redirectPatterns: [/^\/br/],
|
redirectPatterns: [/^\/br/],
|
||||||
dir: getRoot('pt-br'),
|
dir: getRoot('pt-br'),
|
||||||
wip: false,
|
|
||||||
},
|
},
|
||||||
ru: {
|
ru: {
|
||||||
name: 'Russian',
|
name: 'Russian',
|
||||||
@@ -85,7 +80,6 @@ const allLanguages = {
|
|||||||
code: 'ru',
|
code: 'ru',
|
||||||
hreflang: 'ru',
|
hreflang: 'ru',
|
||||||
dir: getRoot('ru-ru'),
|
dir: getRoot('ru-ru'),
|
||||||
wip: false,
|
|
||||||
},
|
},
|
||||||
ja: {
|
ja: {
|
||||||
name: 'Japanese',
|
name: 'Japanese',
|
||||||
@@ -94,7 +88,6 @@ const allLanguages = {
|
|||||||
hreflang: 'ja',
|
hreflang: 'ja',
|
||||||
redirectPatterns: [/^\/jp/],
|
redirectPatterns: [/^\/jp/],
|
||||||
dir: getRoot('ja-jp'),
|
dir: getRoot('ja-jp'),
|
||||||
wip: false,
|
|
||||||
},
|
},
|
||||||
fr: {
|
fr: {
|
||||||
name: 'French',
|
name: 'French',
|
||||||
@@ -102,7 +95,6 @@ const allLanguages = {
|
|||||||
code: 'fr',
|
code: 'fr',
|
||||||
hreflang: 'fr',
|
hreflang: 'fr',
|
||||||
dir: getRoot('fr-fr'),
|
dir: getRoot('fr-fr'),
|
||||||
wip: false,
|
|
||||||
},
|
},
|
||||||
de: {
|
de: {
|
||||||
name: 'German',
|
name: 'German',
|
||||||
@@ -110,7 +102,6 @@ const allLanguages = {
|
|||||||
code: 'de',
|
code: 'de',
|
||||||
hreflang: 'de',
|
hreflang: 'de',
|
||||||
dir: getRoot('de-de'),
|
dir: getRoot('de-de'),
|
||||||
wip: false,
|
|
||||||
},
|
},
|
||||||
ko: {
|
ko: {
|
||||||
name: 'Korean',
|
name: 'Korean',
|
||||||
@@ -119,7 +110,6 @@ const allLanguages = {
|
|||||||
hreflang: 'ko',
|
hreflang: 'ko',
|
||||||
redirectPatterns: [/^\/kr/],
|
redirectPatterns: [/^\/kr/],
|
||||||
dir: getRoot('ko-kr'),
|
dir: getRoot('ko-kr'),
|
||||||
wip: false,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
// Some markdownlint tests depend on having access to all
|
// Some markdownlint tests depend on having access to all
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ function translationExists(language: parserLanguage) {
|
|||||||
if (language.code === 'zh') {
|
if (language.code === 'zh') {
|
||||||
return language.region && chineseRegions.includes(language.region)
|
return language.region && chineseRegions.includes(language.region)
|
||||||
}
|
}
|
||||||
// 92BD1212-61B8-4E7A: Remove ` && !languages[language.code].wip` for the public ship of ko, fr, de, ru
|
|
||||||
return languageKeys.includes(language.code) && !(languages as Languages)[language.code].wip
|
return languageKeys.includes(language.code)
|
||||||
}
|
}
|
||||||
|
|
||||||
function getLanguageCode(language: parserLanguage) {
|
function getLanguageCode(language: parserLanguage) {
|
||||||
@@ -47,8 +47,7 @@ function getUserLanguage(browserLanguages: parserLanguage[]) {
|
|||||||
function getUserLanguageFromCookie(req: Request) {
|
function getUserLanguageFromCookie(req: Request) {
|
||||||
const value: undefined | string = req.cookies[USER_LANGUAGE_COOKIE_NAME]
|
const value: undefined | string = req.cookies[USER_LANGUAGE_COOKIE_NAME]
|
||||||
|
|
||||||
// 92BD1212-61B8-4E7A: Remove ` && !languages[value].wip` for the public ship of ko, fr, de, ru
|
if (value && (languages as Languages)[value]) {
|
||||||
if (value && (languages as Languages)[value] && !(languages as Languages)[value].wip) {
|
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -129,8 +129,7 @@ export default function handleRedirects(req, res, next) {
|
|||||||
|
|
||||||
function getLanguage(req, default_ = 'en') {
|
function getLanguage(req, default_ = 'en') {
|
||||||
// req.context.userLanguage, if it truthy, is always a valid supported
|
// req.context.userLanguage, if it truthy, is always a valid supported
|
||||||
// language. It's whatever was in the user's request but filtered
|
// language. It's whatever was in the user's request in lib/languages.js
|
||||||
// based on non-WIP languages in lib/languages.js
|
|
||||||
return req.context.userLanguage || default_
|
return req.context.userLanguage || default_
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ type Language = {
|
|||||||
code: string
|
code: string
|
||||||
hreflang: string
|
hreflang: string
|
||||||
dir: string
|
dir: string
|
||||||
wip: boolean
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Languages = {
|
export type Languages = {
|
||||||
|
|||||||
Reference in New Issue
Block a user