{"ref":"capability:localization","page":"/capabilities/localization","json":"/capabilities/localization.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"localization","name":"Localization","domain":"ui-and-frontend-bridge","ecosystems":["cap","abap","btp","ui5"],"universal":true,"description":"Serving labels, messages and translated content per user locale, including translatable model elements and per-tenant text overrides.","short":"Serving labels, messages and content per user locale","core_coverage":{"state":"core-only","assessed_at":"2026-09-27","what_core_does":"Text bundles in _i18n or i18n folders beside the models, as .properties or CSV files, are merged over the {i18n>…} keys in annotations for the locale read from sap-locale, sap-language or the Accept-Language header. For data, the localized modifier unfolds an element into a .texts entity and SQL views that read the request's locale and fall back to the default text. The cds.i18n module holds two bundles, labels for UIs and messages for runtime errors, and is open to application code.","where_it_stops":"At texts the project already holds: the bundles and the .texts rows are translated by the project, a preserved locale with no translation falls back to en, and producing the translations is what [SAP Translation Hub](artifact:btp-translation-hub) does on BTP. For data, localized on a sub element of a structure is ignored, an entity whose keys are associations cannot use it, and on SQLite the views exist only for the locales listed in the configuration.","sources":[{"url":"https://cap.cloud.sap/docs/guides/uis/i18n","title":"Localization, i18n","checked":"2026-09-20","quote":"Note: However this list is configured, ensure to have translations for the listed locales, as the fallback language will otherwise be en."},{"url":"https://cap.cloud.sap/docs/guides/uis/localized-data","title":"Localized Data","checked":"2026-09-20","quote":"If you want to use the localized modifier, the entity's keys must not be associations. localized in entity sub elements isn't currently supported and is ignored."},{"url":"https://cap.cloud.sap/docs/guides/uis/localized-data","title":"Localized Data","checked":"2026-09-20","quote":"For SQLite, additional views are generated for different languages. Currently those views are generated for the locales 'de' and 'fr' and the default locale is handled as 'en'."},{"url":"https://cap.cloud.sap/docs/node.js/cds-i18n","title":"Localization / i18n (Node.js) — capire","checked":"2026-09-27","quote":"The cds.i18n module supports internationalization."},{"url":"https://cap.cloud.sap/docs/node.js/cds-i18n","title":"Localization / i18n (Node.js) — capire","checked":"2026-09-27","quote":"cds.i18n.labels are used for generating localized UIs."}]},"history":[{"date":"2026-08-31","field":"core_coverage.state","from":"core","to":"core-only","reason":"States renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately."},{"date":"2026-09-14","field":"ecosystems","from":"cap","to":"cap, abap","reason":"Seven repositories translate ABAP texts: they push object lists to SAP Translation Hub, call DeepL or LibreTranslate, export a package's texts to a spreadsheet, keep form labels in a table, and read texts from the online text repository."},{"date":"2026-09-15","field":"ecosystems","from":"cap, abap","to":"cap, abap, btp","reason":"Widened rather than forked: translating an application's texts is part of the localization concern, as the ABAP widening already recorded. Done so [SAP Translation Hub](artifact:btp-translation-hub), staged in intake-20260915-btp-services, can provide it on BTP."},{"date":"2026-09-15","field":"coverage_by_ecosystem.btp","from":null,"to":"core-only","reason":"The one provider behind the BTP door, [SAP Translation Hub](artifact:btp-translation-hub), is SAP's own; its Discovery Center record describes software translation for ABAP extensions and BTP apps and carries a Neo retirement notice."},{"date":"2026-09-15","field":"framing_by_ecosystem.btp","from":null,"to":"producing the translations, as a platform service","reason":"On BTP the concern includes getting texts translated by a service, where the CAP framing is serving texts per locale and the ABAP framing is translating repository objects in the system."},{"date":"2026-09-18","field":"ecosystems","from":"cap, abap, btp","to":"cap, abap, btp, ui5","reason":"Widened rather than forked, as the ABAP and BTP widenings were: a UI5 app's texts are the same concern under another door. Done so [@sap-ux/i18n](artifact:sap-ux-i18n), which reads and writes UI5 properties bundles and CAP i18n folders and is published from SAP's open-ux-tools, has a door to sit behind."},{"date":"2026-09-18","field":"coverage_by_ecosystem.ui5","from":null,"to":"core-only","reason":"SAPUI5 ships the resource bundle and the resource model itself, and the one UI5-door provider drafted with this revision, [@sap-ux/i18n](artifact:sap-ux-i18n), is SAP's own."},{"date":"2026-09-18","field":"framing_by_ecosystem.ui5","from":null,"to":"texts the app ships as properties files per locale","reason":"Behind the UI5 door the texts are files in the app rather than model elements in a service, which is what the CAP framing describes."},{"date":"2026-09-27","field":"core_coverage","from":"without the page","to":"cites the page","reason":"capire audit 2026-09-27: a page this capability owns was cited nowhere."},{"date":"2026-10-26","field":"coverage_by_ecosystem.ui5.state","from":"core-only","to":"core-and-community","reason":"Reassessed against the graph (check:capabilities): independent UI5-door providers, a CLI that translates i18n.properties with OpenAI and a CLI that round-trips them through Excel, are present beside SAPUI5's resource bundle and SAP's own tooling."},{"date":"2026-10-26","field":"coverage_by_ecosystem.ui5.community_adds","from":null,"to":"Command-line tools that machine-translate the properties files or round-trip them through a spreadsheet.","reason":"Reassessed against the graph (check:capabilities): the state changed, and the kinds of community provider shape the answer."},{"date":"2026-10-26","field":"coverage_by_ecosystem.abap.community_adds","from":null,"to":"Machine translation from ABAP code, a spreadsheet round trip, an XLIFF editor and an MCP server for AI clients.","reason":"Reassessed against the graph (check:capabilities): providers arrived after the block was last looked at, an XLIFF editor and an MCP server among them, and the text named none of the kinds."}],"coverage_by_ecosystem":{"abap":{"state":"core-and-community","assessed_at":"2026-09-14","what_core_does":"SE63 translates short texts, long texts and forms in the system, object by object or from worklists set up in LXE_MASTER, and its proposal pool keeps short text translations consistent.","where_it_stops":"At a translator working in the editor: the page checked describes worklists and a proposal pool, and no machine translation.","sources":[{"url":"https://help.sap.com/doc/saphelp_nw75/7.5.5/en-US/47/7bb4c9fb7a199be10000000a42189d/content.htm","title":"SAP Help — Quick Start for Translators","checked":"2026-09-14","quote":"Transaction Translation Editor (SE63) enables you to translate short texts, long texts, forms, and various other types of text."}],"relationship":"unassessed","community_adds":"Machine translation called from ABAP code by [Christian Günter](actor:christianguenter2)'s DeepL client, a spreadsheet round trip in [ZABAP_TRANSLATIONS](artifact:kaszub09-zabap-translations), an XLIFF editor in [XLF Translator](artifact:xexer-xlf-translator), and an AI client reading and writing object translations through [LISA](artifact:clementringot-lisa)."},"btp":{"state":"core-only","assessed_at":"2026-09-15","what_core_does":"SAP ships translation of an application's texts on BTP as [SAP Translation Hub](artifact:btp-translation-hub), which translates the software texts of ABAP extensions and BTP apps through its UI-based workflow or through software translation APIs an application integrates.","where_it_stops":"At software texts in one of the supported formats, from files, Git repositories or ABAP systems; SAP's neural machine translation and LLM-based translation are named for Git and file projects.","sources":[{"url":"https://discovery-center.cloud.sap/servicecatalog/api/v1/services/d256d92a-9278-4f63-943a-44b0a3959e57","title":"SAP Discovery Center — SAP Translation Hub","checked":"2026-09-15","quote":"Translate ABAP extensions and BTP apps in one of the supported formats with the SAP Translation Hub UI-based workflow or translate the extensions directly in the ABAP backend system. Use SAP's neural MT or LLM-based translation for git and file projects."},{"url":"https://discovery-center.cloud.sap/servicecatalog/api/v1/services/d256d92a-9278-4f63-943a-44b0a3959e57","title":"SAP Discovery Center — SAP Translation Hub","checked":"2026-09-15","quote":"Software Translation APIs: Integrate software translation into applications to get automated translations from SAP's MT or LLM."},{"url":"https://discovery-center.cloud.sap/servicecatalog/api/v1/services/d256d92a-9278-4f63-943a-44b0a3959e57","title":"SAP Discovery Center — SAP Translation Hub","checked":"2026-09-15","quote":"Use the software translation UI to create and manage software translation projects for content from files, Git repositories or ABAP systems."},{"url":"https://discovery-center.cloud.sap/servicecatalog/api/v1/services/d256d92a-9278-4f63-943a-44b0a3959e57","title":"SAP Discovery Center — SAP Translation Hub","checked":"2026-09-15","quote":"This Cloud Service, in the region/data center marked as \"Neo\", is being removed from the Eligible Cloud Services List on December 31, 2028 (\"Retired Service\")."}],"note":"The SAP Translation Hub record carries a notice that the service, in the region marked \"Neo\", is being removed from the Eligible Cloud Services List on December 31, 2028."},"ui5":{"state":"core-and-community","assessed_at":"2026-09-18","relationship":"unassessed","what_core_does":"SAPUI5 ships the resource bundle: .properties files per locale in the app, read through sap/base/i18n/ResourceBundle or bound to control properties through a resource model, so the same app runs in another language without a code change.","where_it_stops":"At the texts the app already carries. Producing the translations is what [SAP Translation Hub](artifact:btp-translation-hub) does on BTP, and keeping the bundle files themselves in step with the views that reference them is left to tooling, where [@sap-ux/i18n](artifact:sap-ux-i18n) sits.","sources":[{"url":"https://github.com/SAP-docs/sapui5/blob/main/docs/03_Get-Started/step-7-optional-resource-bundles-and-multiple-languages-4e593b4.md","title":"SAPUI5 documentation — Step 7: Resource Bundles and Multiple Languages","checked":"2026-09-18","quote":"Resource bundles exist to enable an app to run in multiple languages without the need to change any code."},{"url":"https://github.com/SAP-docs/sapui5/blob/main/docs/04_Essentials/resource-model-91f122a.md","title":"SAPUI5 documentation — Resource Model","checked":"2026-09-18","quote":"In this resource model implementation you cannot pass parameters to your texts within the resource bundle."},{"url":"https://github.com/SAP-docs/sapui5/blob/main/docs/04_Essentials/use-of-localized-texts-in-applications-91f3859.md","title":"SAPUI5 documentation — Use of Localized Texts in Applications","checked":"2026-09-18"}],"community_adds":"Command-line tools that machine-translate the properties files or round-trip them through a spreadsheet, such as [i18n-ai-translator](artifact:concircle-i18n-ai-translator) and [ui5-i18n-excel-converter](artifact:jchirk-ui5-i18n-excel-converter)."}},"framing_by_ecosystem":{"abap":{"description":"In ABAP a translation belongs to a repository object: the texts of a program, class, message class, data element or domain are translated per language in the system and travel by transport. [ZABAP_TRANSLATIONS](https://github.com/Kaszub09/ZABAP_TRANSLATIONS) exports them to a spreadsheet and back, and the DeepL clients by [Christian Günter](actor:christianguenter2) and B-Tocs translate text from ABAP code."},"btp":{"description":"On BTP localization includes producing the translations: an application's software texts go to a platform service, [SAP Translation Hub](artifact:btp-translation-hub), which returns translations from verified multilingual data, a company's own language data or machine translation."},"ui5":{"description":"In UI5 the texts are files the app ships: an i18n.properties per locale, read through a resource bundle or bound in a view as {i18n>KEY}, with the locale coming from the client. The question the door adds is who keeps those files in step with the views that reference them, which is a tooling job rather than a runtime one."}},"drafted_with_ai":true},"sap_delivery":{"door":"cap","all":{"built_in":[{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json"},{"ref":"artifact:cap-java-cds-services-bom","name":"com.sap.cds:cds-services-bom","json":"/artifacts/cap-java-cds-services-bom.json"}],"documented_pattern":[],"announced":[],"packages":[]},"by_flavor":{"node":{"built_in":[{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json"}],"documented_pattern":[],"announced":[],"packages":[]},"java":{"built_in":[{"ref":"artifact:cap-java-cds-services-bom","name":"com.sap.cds:cds-services-bom","json":"/artifacts/cap-java-cds-services-bom.json"}],"documented_pattern":[],"announced":[],"packages":[]}}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:concircle-i18n-ai-translator","name":"@concircle/i18n-ai-translator","json":"/artifacts/concircle-i18n-ai-translator.json","ecosystem":"ui5","origin_ring":"independent"},{"ref":"artifact:sap-ux-i18n","name":"@sap-ux/i18n","json":"/artifacts/sap-ux-i18n.json","ecosystem":"ui5","origin_ring":"sap-official"},{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:b-tocs-abap-btocs-deepl","name":"abap_btocs_deepl","json":"/artifacts/b-tocs-abap-btocs-deepl.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:b-tocs-abap-btocs-libtrl","name":"abap_btocs_libtrl","json":"/artifacts/b-tocs-abap-btocs-libtrl.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:christianguenter2-abap-deepl-client","name":"ABAP_DeepL_client","json":"/artifacts/christianguenter2-abap-deepl-client.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:dergutewolf-abap-translation-hub","name":"ABAP_TRANSLATION_HUB","json":"/artifacts/dergutewolf-abap-translation-hub.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:greltel-abap-form-translator","name":"abap-form-translator","json":"/artifacts/greltel-abap-form-translator.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:cap-java-cds-services-bom","name":"com.sap.cds:cds-services-bom","json":"/artifacts/cap-java-cds-services-bom.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:clementringot-lisa","name":"LISA","json":"/artifacts/clementringot-lisa.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:btp-translation-hub","name":"SAP Translation Hub","json":"/artifacts/btp-translation-hub.json","ecosystem":"btp","origin_ring":"sap-official"},{"ref":"artifact:jchirk-ui5-i18n-excel-converter","name":"ui5-i18n-excel-converter","json":"/artifacts/jchirk-ui5-i18n-excel-converter.json","ecosystem":"ui5","origin_ring":"independent"},{"ref":"artifact:xexer-xlf-translator","name":"XLF Translator","json":"/artifacts/xexer-xlf-translator.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:kaszub09-zabap-translations","name":"ZABAP_TRANSLATIONS","json":"/artifacts/kaszub09-zabap-translations.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:jrgkraus-zotr-utility","name":"ZOTR_UTILITY","json":"/artifacts/jrgkraus-zotr-utility.json","ecosystem":"abap","origin_ring":"independent"}],"samples":[],"explained_by":[{"ref":"content:iso-content-for-common-cap-types","name":"ISO content for common CAP types","json":"/content/iso-content-for-common-cap-types.json"}],"normative_context":[]}}