ResearchCave.Chat.Localization (1.0.3)
Installation
dotnet nuget add source --name ResearchCave --username your_username --password your_token https://git.researchcave.com/api/packages/ResearchCave/nuget/index.jsondotnet add package --source ResearchCave --version 1.0.3 ResearchCave.Chat.LocalizationAbout this package
Portable TSync translation catalogs for ResearchCave Chat web and native clients.
ResearchCave.Chat.Localization
Portable, embedded English, Turkish, German and Arabic catalogs for Chat.
Use ChatStringLocalizer (IStringLocalizer<ChatStrings>) for presentation.
Regional variants resolve by language; unsupported languages fall back to English.
User messages, names, identifiers and API contracts are never translated.
PO files are the editable source. Run ../localize.ps1 to extract keys and
../update-translations.ps1 to merge and compile catalogs with ResearchCave TSync.
The publisher validates compiled catalog hashes and placeholders before packing.
The scripts invoke the ResearchCave.TSync dotnet tool for POT extraction,
PO merging and JSON compilation. English uses --copy-source --overwrite;
other languages keep their existing translations. Generated JSON is not edited.
Server, browser and native PO sources are packed in separate directories.
Embedded hosts must use the Chat service's browser catalog rather than their own:
const locale = document.documentElement.lang || 'en-US';
const translate = await window.ResearchCaveMessaging.loadTranslator(locale);
window.ResearchCaveMessaging.mount(root, { apiBase: chatOrigin, locale, translate });
Sentient passes its active culture for both the conversation screen and background
call companion. Its language switch reloads the page and selects the new catalog.
Call history cards are translated at render time while their stored messages remain
unchanged. API calls use the same culture in Accept-Language.