82 lines
2.7 KiB
TypeScript
82 lines
2.7 KiB
TypeScript
import * as interfaces from '../interfaces/index.js';
|
|
|
|
type TTranslationImplementation = {
|
|
[key in keyof interfaces.IDeDocumentTranslations]: string;
|
|
}
|
|
|
|
export const EN_translations: TTranslationImplementation = {
|
|
address: 'Address',
|
|
bankConnection: 'Bank Connection',
|
|
contactInfo: 'Contact Info',
|
|
description: 'Description',
|
|
invoice: 'Invoice',
|
|
itemPos: 'Item Pos.',
|
|
quantity: 'Quantity',
|
|
registrationInfo: 'Registration Info',
|
|
reverseVatNote: 'VAT arises on a reverse charge basis and is payable by the customer.',
|
|
totalNetPrice: 'Total Net Price',
|
|
unitNetPrice: 'Unit Net Price',
|
|
unitType: 'Unit Type',
|
|
yourCustomerId: 'Your Customer ID:',
|
|
yourVatId: 'Your vat id on file:',
|
|
continuesOnPage: 'Continues on page',
|
|
finalPageStatement: 'This is the final page of this document.',
|
|
page: 'Page',
|
|
};
|
|
|
|
export const DE_translations: TTranslationImplementation = {
|
|
address: 'Adresse',
|
|
bankConnection: 'Bankverbindung',
|
|
contactInfo: 'Kontaktinformationen',
|
|
description: 'Beschreibung',
|
|
invoice: 'Rechnung',
|
|
itemPos: 'Pos.',
|
|
quantity: 'Anzahl',
|
|
registrationInfo: 'HRA/HRB Info',
|
|
reverseVatNote: 'Umkehr der Umsatzsteuerpflicht: Der Rechnungsempfänger ist für die korrekte Abrechnung der Umsatzsteuer zuständig.',
|
|
totalNetPrice: 'Nettopreis Summe',
|
|
unitNetPrice: 'Nettopreis',
|
|
unitType: 'Einheit',
|
|
yourCustomerId: 'Ihre Kundennummer:',
|
|
yourVatId: 'Ihre Umsatzsteuer-ID:',
|
|
continuesOnPage: 'Fortsetzung auf Seite',
|
|
finalPageStatement: 'Diese ist die letzte Seite einer Dokumente.',
|
|
page: 'Seite',
|
|
};
|
|
|
|
export const ES_translations: TTranslationImplementation = {
|
|
address: 'Dirección',
|
|
bankConnection: 'Conexión bancaria',
|
|
contactInfo: 'Información de contacto',
|
|
description: 'Descripción',
|
|
invoice: 'Factura',
|
|
itemPos: 'Pos.',
|
|
quantity: 'Cantidad',
|
|
registrationInfo: 'Información de registro',
|
|
reverseVatNote: 'La declaración de IVA se aplica en base a la factura de venta, y se paga por el cliente.',
|
|
totalNetPrice: 'Precio total neto',
|
|
unitNetPrice: 'Precio unitario neto',
|
|
unitType: 'Tipo de unidad',
|
|
yourCustomerId: 'Su número de cliente:',
|
|
yourVatId: 'Su ID de IVA:',
|
|
continuesOnPage: 'Continues on page',
|
|
finalPageStatement: 'This is the final page of this document.',
|
|
page: 'Page',
|
|
};
|
|
|
|
export const languageCodeMap = {
|
|
'DE': DE_translations,
|
|
'EN': EN_translations,
|
|
'ES': ES_translations,
|
|
};
|
|
|
|
export type TLanguageCode = keyof typeof languageCodeMap;
|
|
|
|
export const translate = (languageCode: TLanguageCode, key: string, defaultValue: string) => {
|
|
const translations = languageCodeMap[languageCode] || EN_translations;
|
|
if (translations && translations[key]) {
|
|
return translations[key];
|
|
} else {
|
|
return defaultValue;
|
|
}
|
|
}; |