#this file will hold the experimental JSON schema for i18n c = require './schemas' languageCodeArrayRegex = c.generateLanguageCodeArrayRegex() ExampleSchema = { title: 'Example Schema', description: 'An example schema', type: 'object', properties: { text: { title: 'Text', description: 'A short message to display in the dialogue area. Markdown okay.', type: 'string', maxLength: 400 }, i18n: {'$ref': '#/definitions/i18n'} }, definitions: { i18n: { title: 'i18n', description: 'The internationalization object', type: 'object', patternProperties: { languageCodeArrayRegex: { additionalProperties: false, properties: { #put the translatable properties here #if it is possible to not include i18n with a reference # to #/properties, you could just do properties: {'$ref': '#/properties'} # text: {'$ref': '#/properties/text'} } default: { title: 'LanguageCode', description: 'LanguageDescription' } } } } } } #define a i18n object type for each schema, then have the i18n have it's oneOf check against #translatable schemas of that object