Type-safe Translations
Add type definitions for autocompletion:
- Create
src/types/swift-i18n.d.ts:
[Manual schema definition]
ts
import 'swift-i18n';
declare module 'swift-i18n' {
// Merge interface — put YOUR key scheme here
interface Translations {
common: {
hello: string;
items_one: string;
items_other: string;
};
home: {
title: string;
description: string;
};
}
}[Derive schema directly from a JSON locale file]
Alternatively, you can generate the type definition automatically from an existing locale (e.g. en.json). This approach ensures the types always stay in sync with your translation files.
ts
import 'swift-i18n';
import en from '../locales/en.json'
type MessageSchema = typeof en;
declare module 'swift-i18n' {
interface Translations extends MessageSchema {};
}TIP
Use the manual schema if you want strict control.
Use the derived schema if you prefer automatic synchronization.
- Add to
tsconfig.json:
json
{
"include": [
"src/types/**/*"
]
}