Merge pull request #777 from martialblog/de-DE

Add German Translation for Mailtrain v2
This commit is contained in:
Tomas Bures 2019-11-13 11:23:42 +02:00 committed by GitHub
commit 7558178bf4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 1071 additions and 28 deletions

View file

@ -401,7 +401,7 @@ export default class CUD extends Component {
} }
if (!state.getIn(['data_sourceCustom_tag_language', 'value'])) { if (!state.getIn(['data_sourceCustom_tag_language', 'value'])) {
state.setIn(['data_sourceCustom_tag_language', 'error'], t('Tag language must be selected')); state.setIn(['data_sourceCustom_tag_language', 'error'], t('tagLanguageMustBeSelected'));
} }
if (customTemplateTypeKey) { if (customTemplateTypeKey) {
@ -732,7 +732,7 @@ export default class CUD extends Component {
templateEdit = <div> templateEdit = <div>
<Dropdown id="data_sourceCustom_type" label={t('type')} options={this.customTemplateTypeOptions}/> <Dropdown id="data_sourceCustom_type" label={t('type')} options={this.customTemplateTypeOptions}/>
<Dropdown id="data_sourceCustom_tag_language" label={t('Tag language')} options={this.customTemplateTagLanguageOptions} disabled={isEdit}/> <Dropdown id="data_sourceCustom_tag_language" label={t('tagLanguage')} options={this.customTemplateTagLanguageOptions} disabled={isEdit}/>
{customTemplateTypeForm} {customTemplateTypeForm}
</div>; </div>;

View file

@ -131,7 +131,7 @@ export default class CustomContent extends Component {
const t = this.props.t; const t = this.props.t;
if (!state.getIn(['data_sourceCustom_tag_language', 'value'])) { if (!state.getIn(['data_sourceCustom_tag_language', 'value'])) {
state.setIn(['data_sourceCustom_tag_language', 'error'], t('Tag language must be selected')); state.setIn(['data_sourceCustom_tag_language', 'error'], t('tagLanguageMustBeSelected'));
} else { } else {
state.setIn(['data_sourceCustom_tag_language', 'error'], null); state.setIn(['data_sourceCustom_tag_language', 'error'], null);
} }
@ -277,7 +277,7 @@ export default class CustomContent extends Component {
{customTemplateTypeKey && this.templateTypes[customTemplateTypeKey].typeName} {customTemplateTypeKey && this.templateTypes[customTemplateTypeKey].typeName}
</StaticField> </StaticField>
<Dropdown id="data_sourceCustom_tag_language" label={t('Tag language')} options={this.customTemplateTagLanguageOptions} disabled={true}/> <Dropdown id="data_sourceCustom_tag_language" label={t('tagLanguage')} options={this.customTemplateTagLanguageOptions} disabled={true}/>
{customTemplateTypeKey && getTypeForm(this, customTemplateTypeKey, true)} {customTemplateTypeKey && getTypeForm(this, customTemplateTypeKey, true)}

View file

@ -12,12 +12,13 @@ import {createComponentMixin} from "./decorator-helpers";
import lang_en_US_common from "../../../locales/en-US/common"; import lang_en_US_common from "../../../locales/en-US/common";
import lang_es_ES_common from "../../../locales/es-ES/common"; import lang_es_ES_common from "../../../locales/es-ES/common";
import lang_pt_BR_common from "../../../locales/pt-BR/common"; import lang_pt_BR_common from "../../../locales/pt-BR/common";
import lang_de_DE_common from "../../../locales/de-DE/common";
const resourcesCommon = { const resourcesCommon = {
'en-US': lang_en_US_common, 'en-US': lang_en_US_common,
'es-ES': lang_es_ES_common, 'es-ES': lang_es_ES_common,
'pt-BR': lang_pt_BR_common, 'pt-BR': lang_pt_BR_common,
'de-DE': lang_de_DE_common,
'fk-FK': convertToFake(lang_en_US_common) 'fk-FK': convertToFake(lang_en_US_common)
}; };

View file

@ -277,7 +277,7 @@ export default class CUD extends Component {
const label = matches[2].trim(); const label = matches[2].trim();
options.push({ key, label }); options.push({ key, label });
} else { } else {
errors.push(t('errrorOnLineLine', { line: lineIdx + 1})); errors.push(t('errorOnLineLine', { line: lineIdx + 1}));
} }
} }
} }
@ -511,7 +511,7 @@ export default class CUD extends Component {
<InputField id="key" label={t('mergeTag-1')}/> <InputField id="key" label={t('mergeTag-1')}/>
<TextArea id="help" label={t('Help text')}/> <TextArea id="help" label={t('helpText')}/>
{fieldSettings} {fieldSettings}

View file

@ -171,7 +171,7 @@ export default class CUD extends Component {
} }
if (!state.getIn(['tag_language', 'value'])) { if (!state.getIn(['tag_language', 'value'])) {
state.setIn(['tag_language', 'error'], t('Tag language must be selected')); state.setIn(['tag_language', 'error'], t('tagLanguageMustBeSelected'));
} }
if (typeKey) { if (typeKey) {
@ -320,7 +320,7 @@ export default class CUD extends Component {
{ data: 1, title: t('name') }, { data: 1, title: t('name') },
{ data: 2, title: t('description') }, { data: 2, title: t('description') },
{ data: 3, title: t('type'), render: data => this.templateTypes[data].typeName }, { data: 3, title: t('type'), render: data => this.templateTypes[data].typeName },
{ data: 4, title: t('Tag language'), render: data => this.tagLanguages[data].name }, { data: 4, title: t('tagLanguage'), render: data => this.tagLanguages[data].name },
{ data: 5, title: t('created'), render: data => moment(data).fromNow() }, { data: 5, title: t('created'), render: data => moment(data).fromNow() },
{ data: 6, title: t('namespace') }, { data: 6, title: t('namespace') },
]; ];
@ -376,7 +376,7 @@ export default class CUD extends Component {
{typeForm} {typeForm}
<Dropdown id="tag_language" label={t('Tag language')} options={tagLanguageOptions} disabled={isEdit}/> <Dropdown id="tag_language" label={t('tagLanguage')} options={tagLanguageOptions} disabled={isEdit}/>
</> </>
} }

View file

@ -45,7 +45,7 @@ export default class List extends Component {
{ data: 1, title: t('name') }, { data: 1, title: t('name') },
{ data: 2, title: t('description') }, { data: 2, title: t('description') },
{ data: 3, title: t('type'), render: data => this.templateTypes[data].typeName }, { data: 3, title: t('type'), render: data => this.templateTypes[data].typeName },
{ data: 4, title: t('Tag language'), render: data => this.tagLanguages[data].name }, { data: 4, title: t('tagLanguage'), render: data => this.tagLanguages[data].name },
{ data: 5, title: t('created'), render: data => moment(data).fromNow() }, { data: 5, title: t('created'), render: data => moment(data).fromNow() },
{ data: 6, title: t('namespace') }, { data: 6, title: t('namespace') },
{ {

View file

@ -132,7 +132,7 @@ export default class CUD extends Component {
} }
if (!state.getIn(['tag_language', 'value'])) { if (!state.getIn(['tag_language', 'value'])) {
state.setIn(['tag_language', 'error'], t('Tag language must be selected')); state.setIn(['tag_language', 'error'], t('tagLanguageMustBeSelected'));
} else { } else {
state.setIn(['tag_language', 'error'], null); state.setIn(['tag_language', 'error'], null);
} }
@ -218,7 +218,7 @@ export default class CUD extends Component {
<Dropdown id="type" label={t('type')} options={this.typeOptions}/> <Dropdown id="type" label={t('type')} options={this.typeOptions}/>
} }
<Dropdown id="tag_language" label={t('Tag language')} options={tagLanguageOptions}/> <Dropdown id="tag_language" label={t('tagLanguage')} options={tagLanguageOptions}/>
<NamespaceSelect/> <NamespaceSelect/>

View file

@ -45,7 +45,7 @@ export default class List extends Component {
{ data: 1, title: t('name') }, { data: 1, title: t('name') },
{ data: 2, title: t('description') }, { data: 2, title: t('description') },
{ data: 3, title: t('type'), render: data => this.templateTypes[data].typeName }, { data: 3, title: t('type'), render: data => this.templateTypes[data].typeName },
{ data: 4, title: t('Tag language'), render: data => this.tagLanguages[data].name }, { data: 4, title: t('tagLanguage'), render: data => this.tagLanguages[data].name },
{ data: 5, title: t('created'), render: data => moment(data).fromNow() }, { data: 5, title: t('created'), render: data => moment(data).fromNow() },
{ data: 6, title: t('namespace') }, { data: 6, title: t('namespace') },
{ {

1032
locales/de-DE/common.json Normal file

File diff suppressed because it is too large Load diff

View file

@ -267,7 +267,7 @@
"viewStatistics": "View statistics", "viewStatistics": "View statistics",
"campaignIsBeingSentOut": "Campaign is being sent out.", "campaignIsBeingSentOut": "Campaign is being sent out.",
"stop": "Stop", "stop": "Stop",
"allMessagesSent!HitContinueIfYouYouWant": "All messages sent! Hit \"Continue\" if you you want to send this campaign to new subscribers.", "allMessagesSent!HitContinueIfYouYouWant": "All messages sent! Hit \"Continue\" if you want to send this campaign to new subscribers.",
"continue": "Continue", "continue": "Continue",
"reset": "Reset", "reset": "Reset",
"yourCampaignIsCurrentlyDisabledClick": "Your campaign is currently disabled. Click Enable button to start enable it.", "yourCampaignIsCurrentlyDisabledClick": "Your campaign is currently disabled. Click Enable button to start enable it.",
@ -398,7 +398,7 @@
"defaultValueIsNotAProperlyFormattedDate": "Default value is not a properly formatted date", "defaultValueIsNotAProperlyFormattedDate": "Default value is not a properly formatted date",
"defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date", "defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date",
"defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options", "defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options",
"errrorOnLineLine": "Errror on line {{ line }}", "errorOnLineLine": "Error on line {{ line }}",
"fieldUpdated": "Field updated", "fieldUpdated": "Field updated",
"fieldCreated": "Field created", "fieldCreated": "Field created",
"notVisible": "Not visible", "notVisible": "Not visible",

View file

@ -267,7 +267,7 @@
"viewStatistics": "View statistics", "viewStatistics": "View statistics",
"campaignIsBeingSentOut": "Campaign is being sent out.", "campaignIsBeingSentOut": "Campaign is being sent out.",
"stop": "Stop", "stop": "Stop",
"allMessagesSent!HitContinueIfYouYouWant": "All messages sent! Hit \"Continue\" if you you want to send this campaign to new subscribers.", "allMessagesSent!HitContinueIfYouYouWant": "All messages sent! Hit \"Continue\" if you want to send this campaign to new subscribers.",
"continue": "Continue", "continue": "Continue",
"reset": "Reset", "reset": "Reset",
"yourCampaignIsCurrentlyDisabledClick": "Your campaign is currently disabled. Click Enable button to start enable it.", "yourCampaignIsCurrentlyDisabledClick": "Your campaign is currently disabled. Click Enable button to start enable it.",
@ -398,7 +398,7 @@
"defaultValueIsNotAProperlyFormattedDate": "Default value is not a properly formatted date", "defaultValueIsNotAProperlyFormattedDate": "Default value is not a properly formatted date",
"defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date", "defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date",
"defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options", "defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options",
"errrorOnLineLine": "Errror on line {{ line }}", "errorOnLineLine": "Error on line {{ line }}",
"fieldUpdated": "Field updated", "fieldUpdated": "Field updated",
"fieldCreated": "Field created", "fieldCreated": "Field created",
"notVisible": "Not visible", "notVisible": "Not visible",
@ -1025,5 +1025,8 @@
"thePasswordMustContainAtLeastOne": "The password must contain at least one lowercase letter", "thePasswordMustContainAtLeastOne": "The password must contain at least one lowercase letter",
"thePasswordMustContainAtLeastOne-1": "The password must contain at least one uppercase letter", "thePasswordMustContainAtLeastOne-1": "The password must contain at least one uppercase letter",
"thePasswordMustContainAtLeastOneNumber": "The password must contain at least one number", "thePasswordMustContainAtLeastOneNumber": "The password must contain at least one number",
"thePasswordMustContainAtLeastOneSpecial": "The password must contain at least one special character" "thePasswordMustContainAtLeastOneSpecial": "The password must contain at least one special character",
"tagLanguage": "Tag language",
"tagLanguageMustBeSelected": "Tag language must be selected",
"helpText": "Help text"
} }

View file

@ -277,7 +277,7 @@
"viewStatistics": "View statistics", "viewStatistics": "View statistics",
"campaignIsBeingSentOut": "Campaign is being sent out.", "campaignIsBeingSentOut": "Campaign is being sent out.",
"stop": "Stop", "stop": "Stop",
"allMessagesSent!HitContinueIfYouYouWant": "All messages sent! Hit \"Continue\" if you you want to send this campaign to new subscribers.", "allMessagesSent!HitContinueIfYouYouWant": "All messages sent! Hit \"Continue\" if you want to send this campaign to new subscribers.",
"continue": "Continue", "continue": "Continue",
"reset": "Reset", "reset": "Reset",
"yourCampaignIsCurrentlyDisabledClick": "Your campaign is currently disabled. Click Enable button to start enable it.", "yourCampaignIsCurrentlyDisabledClick": "Your campaign is currently disabled. Click Enable button to start enable it.",
@ -425,7 +425,7 @@
"defaultValueIsNotAProperlyFormattedDate": "Default value is not a properly formatted date", "defaultValueIsNotAProperlyFormattedDate": "Default value is not a properly formatted date",
"defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date", "defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date",
"defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options", "defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options",
"errrorOnLineLine": "Errror on line {{ line }}", "errorOnLineLine": "Error on line {{ line }}",
"fieldUpdated": "Field updated", "fieldUpdated": "Field updated",
"fieldUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Field updated", "fieldUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Field updated",
"fieldCreated": "Field created", "fieldCreated": "Field created",

View file

@ -17,7 +17,7 @@ const deepKeys = require('deep-keys');
const localeMain = 'en-US/common.json'; const localeMain = 'en-US/common.json';
const localeMainPrevious = 'en-US-last-run/common.json'; const localeMainPrevious = 'en-US-last-run/common.json';
const localeTranslations = ['es-ES/common.json', 'pt-BR/common.json']; const localeTranslations = ['es-ES/common.json', 'pt-BR/common.json', 'de-DE/common.json'];
const searchDirs = [ const searchDirs = [
'../client/src', '../client/src',
'../server', '../server',

View file

@ -426,7 +426,7 @@
"defaultValueIsNotAProperlyFormattedDate": "O valor padrão não é uma data formatada corretamente", "defaultValueIsNotAProperlyFormattedDate": "O valor padrão não é uma data formatada corretamente",
"defaultValueIsNotAProperlyFormatted": "O valor padrão não é uma data de aniversário formatada corretamente", "defaultValueIsNotAProperlyFormatted": "O valor padrão não é uma data de aniversário formatada corretamente",
"defaultValueIsNotOneOfTheAllowedOptions": "O valor padrão não é uma das opções permitidas", "defaultValueIsNotOneOfTheAllowedOptions": "O valor padrão não é uma das opções permitidas",
"errrorOnLineLine": "Errror on line {{line}}", "errorOnLineLine": "Error on line {{line}}",
"fieldUpdated": "Field updated", "fieldUpdated": "Field updated",
"fieldUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Field updated", "fieldUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Field updated",
"fieldCreated": "Field created", "fieldCreated": "Field created",

View file

@ -49,6 +49,7 @@ enabledLanguages:
- en-US - en-US
- es-ES - es-ES
- pt-BR - pt-BR
- de-DE
- fk-FK - fk-FK
# Inject custom scripts in subscription/layout.mjml.hbs # Inject custom scripts in subscription/layout.mjml.hbs

View file

@ -12,6 +12,7 @@ defaultLanguage: en-US
enabledLanguages: enabledLanguages:
- en-US - en-US
- es-ES - es-ES
- de-DE
- fk-FK - fk-FK
mysql: mysql:

View file

@ -56,6 +56,11 @@ const langCodes = {
getLabel: t => 'Português', getLabel: t => 'Português',
longCode: 'pt-BR' longCode: 'pt-BR'
}, },
'de-DE': {
getShortLabel: t => 'DE',
getLabel: t => 'Deutsch',
longCode: 'de-DE'
},
'fk-FK': { 'fk-FK': {
getShortLabel: t => 'FK', getShortLabel: t => 'FK',
getLabel: t => 'Fake', getLabel: t => 'Fake',