App router 404 localization (#57230)
This commit is contained in:
45
src/app/lib/server-context-utils.ts
Normal file
45
src/app/lib/server-context-utils.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { extractLanguageFromPath } from '@/app/lib/language-utils'
|
||||
import { extractVersionFromPath } from '@/app/lib/version-utils'
|
||||
import { getUIDataMerged } from '@/data-directory/lib/get-data'
|
||||
import { type ClientLanguageCode } from '@/languages/lib/client-languages'
|
||||
import { createTranslationFunctions, translate } from '@/languages/lib/translation-utils'
|
||||
|
||||
export interface ServerAppRouterContext {
|
||||
currentLanguage: ClientLanguageCode
|
||||
currentVersion: string
|
||||
sitename: string
|
||||
site: { data: { ui: any } }
|
||||
}
|
||||
|
||||
/**
|
||||
* Server-side context creation using filesystem data
|
||||
* Use in server components where filesystem access is available
|
||||
*/
|
||||
export function createServerAppRouterContext(pathname: string): ServerAppRouterContext {
|
||||
const language = extractLanguageFromPath(pathname)
|
||||
const currentVersion = extractVersionFromPath(pathname)
|
||||
|
||||
const uiData = getUIDataMerged(language)
|
||||
const siteName = translate(uiData, 'header.github_docs', 'GitHub Docs')
|
||||
|
||||
return {
|
||||
currentLanguage: language,
|
||||
currentVersion,
|
||||
sitename: siteName,
|
||||
site: { data: { ui: uiData } },
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create server-side footer with translations
|
||||
*/
|
||||
export function createServerFooterContent(language: ClientLanguageCode) {
|
||||
const uiData = getUIDataMerged(language)
|
||||
const { t } = createTranslationFunctions(uiData, 'footer')
|
||||
|
||||
return {
|
||||
t,
|
||||
language,
|
||||
footerData: uiData.footer || {},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user