feat(locales): complete German phone locale

This commit is contained in:
Leon.Schmidt
2026-08-17 21:17:15 +02:00
parent bbecf64e55
commit fc3f5b1da2
3 changed files with 1976 additions and 453 deletions
@@ -224,9 +224,9 @@ describe('phone locale contract', () => {
expect(missing).toEqual([]) expect(missing).toEqual([])
}) })
it('builds German on the complete English locale fallback', () => { it('keeps German structurally aligned with English', () => {
expect(germanLocaleSource).toContain( const germanPaths = collectLuaLocalePaths(germanLocaleSource)
'local german = translate_shared(clone(Locales["en"] or {}))',
) expect([...germanPaths].sort()).toEqual([...englishPaths].sort())
}) })
}) })
File diff suppressed because it is too large Load Diff
+81 -81
View File
@@ -1093,10 +1093,10 @@ Locales["en"] = {
status = { open = "Open", overdue = "Overdue", processing = "Processing", paid = "Paid", disputed = "Disputed", cancelled = "Cancelled", refunded = "Refunded" }, status = { open = "Open", overdue = "Overdue", processing = "Processing", paid = "Paid", disputed = "Disputed", cancelled = "Cancelled", refunded = "Refunded" },
detail = { detail = {
title = "Invoice details", noDueDate = "No due date", total = "Total", reason = "Reason", title = "Invoice details", noDueDate = "No due date", total = "Total", reason = "Reason",
issued = "Issued", due = "Due", paidAt = "Paid", paidOn = "Payment on {date}", issued = "Issued", due = "Due", paidAt = "Paid", paidOn = "Payment on {date}",
issuer = "Issuer", invoiceNumber = "Invoice number", issuer = "Issuer", invoiceNumber = "Invoice number",
invoiceInformation = "Invoice information", paymentInformation = "Payment information", invoiceInformation = "Invoice information", paymentInformation = "Payment information",
note = "Invoice note", note = "Invoice note",
paymentReference = "Payment reference", dispute = "Dispute invoice", paymentReference = "Payment reference", dispute = "Dispute invoice",
disputedSuccess = "The invoice was disputed.", disputedSuccess = "The invoice was disputed.",
}, },
@@ -1268,7 +1268,7 @@ Locales["en"] = {
default = "SkyRide could not complete the request.", default = "SkyRide could not complete the request.",
}, },
}, },
house = { house = {
name = "House", subtitle = "Manage homes and access", myHomes = "Your Homes", name = "House", subtitle = "Manage homes and access", myHomes = "Your Homes",
properties = "Properties", owned = "Owned", shared = "Shared with you", properties = "Properties", owned = "Owned", shared = "Shared with you",
locked = "Locked", unlocked = "Unlocked", lockDoor = "Lock Door", unlockDoor = "Unlock Door", owner = "Owner", keyholder = "Key holder", locked = "Locked", unlocked = "Unlocked", lockDoor = "Lock Door", unlockDoor = "Unlock Door", owner = "Owner", keyholder = "Key holder",
@@ -1297,7 +1297,7 @@ Locales["en"] = {
cctv_unavailable = "The camera is unavailable for this property.", provider_rejected = "The housing provider rejected the request.", cctv_unavailable = "The camera is unavailable for this property.", provider_rejected = "The housing provider rejected the request.",
action_failed = "The property change could not be saved.", rate_limited = "Please wait before using another housing control.", reload_cooldown = "Too many refreshes. Please wait a moment before trying again.", device_not_open = "Open the phone again to manage your homes.", action_failed = "The property change could not be saved.", rate_limited = "Please wait before using another housing control.", reload_cooldown = "Too many refreshes. Please wait a moment before trying again.", device_not_open = "Open the phone again to manage your homes.",
device_locked = "Unlock the phone to manage your homes.", request_failed = "The housing request failed.", default = "The housing request failed.", device_locked = "Unlock the phone to manage your homes.", request_failed = "The housing request failed.", default = "The housing request failed.",
}, },
}, },
calculator = { calculator = {
name = "Calculator", history = "Calculation history", changeMode = "Change calculator mode", name = "Calculator", history = "Calculation history", changeMode = "Change calculator mode",
@@ -1842,81 +1842,81 @@ Locales["en"] = {
player = "Player", profileLabel = "{name} profile", player = "Player", profileLabel = "{name} profile",
searchPlaceholder = "Games, apps, stories and more", appsTitle = "Built-in Apps", gamesTitle = "Games", searchPlaceholder = "Games, apps, stories and more", appsTitle = "Built-in Apps", gamesTitle = "Games",
selected = "Apps available for your Sky Phone", selected = "Apps available for your Sky Phone",
tabs = { today = "Today", apps = "Apps", games = "Games", search = "Search" }, tabs = { today = "Today", apps = "Apps", games = "Games", search = "Search" },
today = { today = {
featured = "Featured today", featured = "Featured today",
gameHighlight = "Game highlight", appHighlight = "App highlight", gameHighlight = "Game highlight", appHighlight = "App highlight",
curatedForYou = "Curated for you", editorsChoice = "Editor's Choice", curatedForYou = "Curated for you", editorsChoice = "Editor's Choice",
discoverTitle = "Discover {app}", playTitle = "Play something new with {app}", discoverTitle = "Discover {app}", playTitle = "Play something new with {app}",
description = "{app} is in the spotlight today on Sky Phone.", description = "{app} is in the spotlight today on Sky Phone.",
categoryDescription = "{category} · Made for Sky Phone", categoryDescription = "{category} · Made for Sky Phone",
moreHighlights = "Today's Highlights", topToday = "Top Today", moreHighlights = "Today's Highlights", topToday = "Top Today",
topTodayDescription = "Popular picks from todays edition", topTodayDescription = "Popular picks from todays edition",
oneMoreThing = "One more thing", oneMoreThing = "One more thing",
}, },
filters = { filters = {
all = "All", social = "Social", utilities = "Utilities", shopping = "Shopping", all = "All", social = "Social", utilities = "Utilities", shopping = "Shopping",
productivity = "Productivity", arcade = "Arcade", puzzle = "Puzzle", classic = "Classics", productivity = "Productivity", arcade = "Arcade", puzzle = "Puzzle", classic = "Classics",
}, },
browse = { browse = {
categories = "Store categories", availableNow = "Available now", categories = "Store categories", availableNow = "Available now",
featureTitle = "Discover {app}", featuredPages = "Featured apps", featureTitle = "Discover {app}", featuredPages = "Featured apps",
handPicked = "Hand-picked for you", essentialApps = "Essential Apps", handPicked = "Hand-picked for you", essentialApps = "Essential Apps",
essentialGames = "Essential Games", essentialGames = "Essential Games",
}, },
taglines = { taglines = {
health = "Health, activity and medical information", health = "Health, activity and medical information",
["weazel-news"] = "Local news and city stories", ["weazel-news"] = "Local news and city stories",
companies = "Businesses, jobs and services", music = "Songs, playlists and audio", companies = "Businesses, jobs and services", music = "Songs, playlists and audio",
picstagram = "Photo sharing and social feed", feather = "Short posts and city conversations", picstagram = "Photo sharing and social feed", feather = "Short posts and city conversations",
fliptok = "Short videos and trends", flare = "Social posts and live moments", fliptok = "Short videos and trends", flare = "Social posts and live moments",
calendar = "Events, schedules and reminders", radio = "Live radio and team communication", calendar = "Events, schedules and reminders", radio = "Live radio and team communication",
["local-pages"] = "Local businesses and community pages", crewlink = "Crews, members and coordination", ["local-pages"] = "Local businesses and community pages", crewlink = "Crews, members and coordination",
phone = "Calls, contacts and voicemail", messages = "Private texts and media", phone = "Calls, contacts and voicemail", messages = "Private texts and media",
darkchat = "Private messaging and secure groups", garage = "Vehicles, parking and valet", darkchat = "Private messaging and secure groups", garage = "Vehicles, parking and valet",
house = "Homes, access and management", map = "Navigation and nearby places", house = "Homes, access and management", map = "Navigation and nearby places",
skyride = "City rides and driver booking", banking = "Accounts, transfers and payments", skyride = "City rides and driver booking", banking = "Accounts, transfers and payments",
billing = "Invoices and payment requests", mail = "Email and attachments", billing = "Invoices and payment requests", mail = "Email and attachments",
notes = "Notes, lists and ideas", memos = "Voice recordings and memos", notes = "Notes, lists and ideas", memos = "Voice recordings and memos",
calculator = "Everyday and scientific calculations", camera = "Photos and video capture", calculator = "Everyday and scientific calculations", camera = "Photos and video capture",
clock = "Time, alarms and timers", weather = "Forecasts and current conditions", clock = "Time, alarms and timers", weather = "Forecasts and current conditions",
photos = "Photo and video library", settings = "Phone preferences and security", photos = "Photo and video library", settings = "Phone preferences and security",
snake = "Classic arcade snake", memory = "Card matching challenge", snake = "Classic arcade snake", memory = "Card matching challenge",
["number-merge"] = "Number puzzle and strategy", minesweeper = "Classic logic puzzle", ["number-merge"] = "Number puzzle and strategy", minesweeper = "Classic logic puzzle",
["tower-stack"] = "Precision tower-building game", ["sky-flappy"] = "Fast arcade flying challenge", ["tower-stack"] = "Precision tower-building game", ["sky-flappy"] = "Fast arcade flying challenge",
citymarkt = "Local marketplace and listings", ["neon-drop"] = "Neon block-dropping puzzle", citymarkt = "Local marketplace and listings", ["neon-drop"] = "Neon block-dropping puzzle",
}, },
search = { search = {
recommended = "Recommended", discover = "Discover", results = "Search Results", recommended = "Recommended", discover = "Discover", results = "Search Results",
noResults = "No Results", noResultsBody = "Try searching for a different app or game.", ad = "Ad", noResults = "No Results", noResultsBody = "Try searching for a different app or game.", ad = "Ad",
topApps = "Top Apps", topGames = "Top Games", bestApps = "Bestselling Apps", topApps = "Top Apps", topGames = "Top Games", bestApps = "Bestselling Apps",
bestGames = "Bestselling Games", productivity = "Productivity", photoVideo = "Photo & Video", bestGames = "Bestselling Games", productivity = "Productivity", photoVideo = "Photo & Video",
}, },
account = { account = {
account = "Account", title = "App Management", skyAccount = "Sky Phone Account", account = "Account", title = "App Management", skyAccount = "Sky Phone Account",
apps = "Installed Apps", games = "Games", library = "Your Library", myApps = "My Apps", apps = "Installed Apps", games = "Games", library = "Your Library", myApps = "My Apps",
downloadedOn = "Downloaded {date}", uninstall = "Uninstall", uninstallApp = "Uninstall {app}", downloadedOn = "Downloaded {date}", uninstall = "Uninstall", uninstallApp = "Uninstall {app}",
uninstallTitle = "Uninstall this app?", uninstallTitle = "Uninstall this app?",
uninstallBody = "{app} will be removed from this phone. You can download it again from the App Store.", uninstallBody = "{app} will be removed from this phone. You can download it again from the App Store.",
}, },
details = { details = {
skyStudios = "Sky Studios", share = "Share app", openDetails = "View {app}", skyStudios = "Sky Studios", share = "Share app", openDetails = "View {app}",
shareReady = "App information is ready to share.", ratings = "{count} ratings", shareReady = "App information is ready to share.", ratings = "{count} ratings",
shareCopy = "Take a look at {app} in the App Store.", shareCopy = "Take a look at {app} in the App Store.",
age = "Age Rating", years = "Years", chart = "Chart", whatsNew = "What's New", age = "Age Rating", years = "Years", chart = "Chart", whatsNew = "What's New",
version = "Version {version}", updatedToday = "Today", version = "Version {version}", updatedToday = "Today",
releaseNotes = "{app} now includes fresh content, faster loading and several interface improvements.", releaseNotes = "{app} now includes fresh content, faster loading and several interface improvements.",
preview = "Preview", testData = "Preview data", previewLive = "Live Preview", preview = "Preview", testData = "Preview data", previewLive = "Live Preview",
previousPreview = "Previous preview", nextPreview = "Next preview", previousPreview = "Previous preview", nextPreview = "Next preview",
previewOverview = "Everything important at a glance", previewCommunity = "Community", previewOverview = "Everything important at a glance", previewCommunity = "Community",
previewInsights = "Insights", today = "Today", progress = "Progress", previewInsights = "Insights", today = "Today", progress = "Progress",
communityTitle = "Together in {app}", communityTitle = "Together in {app}",
communityBody = "Discover activity from players around Los Santos.", communityBody = "Discover activity from players around Los Santos.",
featuredMoment = "Featured moment from today", weeklyActivity = "Weekly Activity", featuredMoment = "Featured moment from today", weeklyActivity = "Weekly Activity",
fromLastWeek = "from last week", about = "About this App", fromLastWeek = "from last week", about = "About this App",
description = "{app} is a detailed {category} experience made for Sky Phone. Explore its features, connect with the city and keep everything close at hand.", description = "{app} is a detailed {category} experience made for Sky Phone. Explore its features, connect with the city and keep everything close at hand.",
}, },
}, },
settings = { settings = {
name = "Settings", searchPlaceholder = "Search", airplaneMode = "Airplane Mode", streamerMode = "Streamer Mode", name = "Settings", searchPlaceholder = "Search", airplaneMode = "Airplane Mode", streamerMode = "Streamer Mode",
wallpaper = "Wallpaper", on = "On", off = "Off", accountName = "Sky Cloud", wallpaper = "Wallpaper", on = "On", off = "Off", accountName = "Sky Cloud",