Skip to content

Internationalization Terms

This page lists the English locale terms (keys → English strings) used throughout the library. For markdown safety the map is embedded inside a fenced block so placeholders like {{#label}} and embedded backticks aren’t interpreted.

ts
export default {
  'alternatives.all': '{{#label}} does not match all of the required types',
  'alternatives.any': '{{#label}} does not match any of the allowed types',
  'alternatives.match': '{{#label}} does not match any of the allowed types',
  'alternatives.one': '{{#label}} matches more than one allowed type',
  'alternatives.types': '{{#label}} must be one of {{#types}}',
  'any.custom': '{{#label}} failed custom validation because {{#error.message}}',
  'any.default': '{{#label}} threw an error when running default method',
  'any.failover': '{{#label}} threw an error when running failover method',
  'any.invalid': '{{#label}} contains an invalid value',
  'any.only': '{{#label}} must be {if(#valids.length == 1, "", "one of ")}{{#valids}}',
  'any.ref': '{{#label}} {{#arg}} references {{:#ref}} which {{#reason}}',
  'any.required': '{{#label}} is required',
  'any.unknown': '{{#label}} is not allowed',
  'array.base': '{{#label}} must be an array',
  'array.excludes': '{{#label}} contains an excluded value',
  'array.hasKnown':
    '{{#label}} does not contain at least one required match for type {:#patternLabel}',
  'array.hasUnknown': '{{#label}} does not contain at least one required match',
  'array.includes': '{{#label}} does not match any of the allowed types',
  'array.includesRequiredBoth':
    '{{#label}} does not contain {{#knownMisses}} and {{#unknownMisses}} other required value(s)',
  'array.includesRequiredKnowns': '{{#label}} does not contain {{#knownMisses}}',
  'array.includesRequiredUnknowns':
    '{{#label}} does not contain {{#unknownMisses}} required value(s)',
  'array.length': '{{#label}} must contain {{#limit}} items',
  'array.max': '{{#label}} must contain less than or equal to {{#limit}} items',
  'array.min': '{{#label}} must contain at least {{#limit}} items',
  'array.orderedLength': '{{#label}} must contain at most {{#limit}} items',
  'array.sort': '{{#label}} must be sorted in {#order} order by {{#by}}',
  'array.sort.mismatching': '{{#label}} cannot be sorted due to mismatching types',
  'array.sort.unsupported': '{{#label}} cannot be sorted due to unsupported type {#type}',
  'array.sparse': '{{#label}} must not be a sparse array item',
  'array.unique': '{{#label}} contains a duplicate value',
  'boolean.base': '{{#label}} must be a boolean',
  'date.base': '{{#label}} must be a valid date',
  'date.format': '{{#label}} must be in {msg("date.format." + #format) || #format} format',
  'date.greater': '{{#label}} must be greater than {{:#limit}}',
  'date.less': '{{#label}} must be less than {{:#limit}}',
  'date.max': '{{#label}} must be less than or equal to {{:#limit}}',
  'date.min': '{{#label}} must be greater than or equal to {{:#limit}}',
  'date.format.iso': 'ISO 8601 date',
  'date.format.javascript': 'timestamp or number of milliseconds',
  'date.format.unix': 'timestamp or number of seconds',
  'function.arity': '{{#label}} must have an arity of {{#n}}',
  'function.class': '{{#label}} must be a class',
  'function.maxArity': '{{#label}} must have an arity lesser or equal to {{#n}}',
  'function.minArity': '{{#label}} must have an arity greater or equal to {{#n}}',
  'number.base': '{{#label}} must be a number',
  'number.greater': '{{#label}} must be greater than {{#limit}}',
  'number.infinity': '{{#label}} cannot be infinity',
  'number.integer': '{{#label}} must be an integer',
  'number.less': '{{#label}} must be less than {{#limit}}',
  'number.max': '{{#label}} must be less than or equal to {{#limit}}',
  'number.min': '{{#label}} must be greater than or equal to {{#limit}}',
  'number.multiple': '{{#label}} must be a multiple of {{#multiple}}',
  'number.negative': '{{#label}} must be a negative number',
  'number.port': '{{#label}} must be a valid port',
  'number.positive': '{{#label}} must be a positive number',
  'number.precision': '{{#label}} must have no more than {{#limit}} decimal places',
  'number.unsafe': '{{#label}} must be a safe number',
  'object.and':
    '{{#label}} contains {{#presentWithLabels}} without its required peers {{#missingWithLabels}}',
  'object.assert':
    '{{#label}} is invalid because {if(#subject.key, `"` + #subject.key + `" failed to ` + (#message || "pass the assertion test"), #message || "the assertion failed")}',
  'object.base': '{{#label}} must be of type {{#type}}',
  'object.instance': '{{#label}} must be an instance of {{:#type}}',
  'object.length': '{{#label}} must have {{#limit}} key{if(#limit == 1, "", "s")}',
  'object.max':
    '{{#label}} must have less than or equal to {{#limit}} key{if(#limit == 1, "", "s")}',
  'object.min': '{{#label}} must have at least {{#limit}} key{if(#limit == 1, "", "s")}',
  'object.missing': '{{#label}} must contain at least one of {{#peersWithLabels}}',
  'object.nand': '{{:#mainWithLabel}} must not exist simultaneously with {{#peersWithLabels}}',
  'object.oxor':
    '{{#label}} contains a conflict between optional exclusive peers {{#peersWithLabels}}',
  'object.pattern.match': '{{#label}} keys failed to match pattern requirements',
  'object.refType': '{{#label}} must be a Joi reference',
  'object.regex': '{{#label}} must be a RegExp object',
  'object.rename.multiple':
    '{{#label}} cannot rename {{:#from}} because multiple renames are disabled and another key was already renamed to {{:#to}}',
  'object.rename.override':
    '{{#label}} cannot rename {{:#from}} because override is disabled and target {{:#to}} exists',
  'object.schema': '{{#label}} must be a Joi schema of {{#type}} type',
  'object.unknown': '{{#label}} is not allowed',
  'object.with': '{{:#mainWithLabel}} missing required peer {{:#peerWithLabel}}',
  'object.without': '{{:#mainWithLabel}} conflict with forbidden peer {{:#peerWithLabel}}',
  'object.xor': '{{#label}} contains a conflict between exclusive peers {{#peersWithLabels}}',
  'string.alphanum': '{{#label}} must only contain alpha-numeric characters',
  'string.base': '{{#label}} must be a string',
  'string.base64': '{{#label}} must be a valid base64 string',
  'string.creditCard': '{{#label}} must be a credit card',
  'string.dataUri': '{{#label}} must be a valid dataUri string',
  'string.domain': '{{#label}} must contain a valid domain name',
  'string.email': '{{#label}} must be a valid email',
  'string.empty': '{{#label}} is not allowed to be empty',
  'string.guid': '{{#label}} must be a valid GUID',
  'string.hex': '{{#label}} must only contain hexadecimal characters',
  'string.hexAlign': '{{#label}} hex decoded representation must be byte aligned',
  'string.hostname': '{{#label}} must be a valid hostname',
  'string.ip': '{{#label}} must be a valid ip address with a {{#cidr}} CIDR',
  'string.ipVersion':
    '{{#label}} must be a valid ip address of one of the following versions {{#version}} with a {{#cidr}} CIDR',
  'string.isoDate': '{{#label}} must be in iso format',
  'string.isoDuration': '{{#label}} must be a valid ISO 8601 duration',
  'string.length': '{{#label}} length must be {{#limit}} characters long',
  'string.lowercase': '{{#label}} must only contain lowercase characters',
  'string.max': '{{#label}} length must be less than or equal to {{#limit}} characters long',
  'string.min': '{{#label}} length must be at least {{#limit}} characters long',
  'string.normalize': '{{#label}} must be unicode normalized in the {{#form}} form',
  'string.token': '{{#label}} must only contain alpha-numeric and underscore characters',
  'string.pattern.base':
    '{{#label}} with value {:[.]} fails to match the required pattern: {{#regex}}',
  'string.pattern.name': '{{#label}} with value {:[.]} fails to match the {{#name}} pattern',
  'string.pattern.invert.base':
    '{{#label}} with value {:[.]} matches the inverted pattern: {{#regex}}',
  'string.pattern.invert.name':
    '{{#label}} with value {:[.]} matches the inverted {{#name}} pattern',
  'string.trim': '{{#label}} must not have leading or trailing whitespace',
  'string.uri': '{{#label}} must be a valid uri',
  'string.uriCustomScheme':
    '{{#label}} must be a valid uri with a scheme matching the {{#scheme}} pattern',
  'string.uriRelativeOnly': '{{#label}} must be a valid relative uri',
  'string.uppercase': '{{#label}} must only contain uppercase characters',
  'symbol.base': '{{#label}} must be a symbol',
  'symbol.map': '{{#label}} must be one of {{#map}}',
  'binary.base': '{{#label}} must be a buffer or a string',
  'binary.length': '{{#label}} must be {{#limit}} bytes',
  'binary.max': '{{#label}} must be less than or equal to {{#limit}} bytes',
  'binary.min': '{{#label}} must be at least {{#limit}} bytes',
  'bigint.base': '"{{#label}}" must be a valid bigint',
  'bigint.greater': '"{{#label}}" must be greater than {{#limit}}',
  'bigint.less': '"{{#label}}" must be less than {{#limit}}',
  'bigint.max': '"{{#label}}" must be less than or equal to {{#limit}}',
  'bigint.min': '"{{#label}}" must be greater than or equal to {{#limit}}',
  'bigint.multiple': '"{{#label}}" must be a multiple of {{#limit}}',
  'bigint.negative': '"{{#label}}" must be a negative bigint',
  'bigint.positive': '"{{#label}}" must be a positive bigint',
  'datetime.base': '{{#label}} must be a datetime value',
  'datetime.exactly': '{{#label}} must be a datetime exactly equal to {{#limit}}',
  'datetime.equals': '{{#label}} must be a datetime equal to {{#limit}}',
  'datetime.after': '{{#label}} must be a datetime after {{#limit}}',
  'datetime.greater': '{{#label}} must be a datetime after {{#limit}}',
  'datetime.before': '{{#label}} must be a datetime before {{#limit}}',
  'datetime.less': '{{#label}} must be a datetime before {{#limit}}',
  'datetime.afterOrEqual': '{{#label}} must be a datetime after or equal to {{#limit}}',
  'datetime.min': '{{#label}} must be a datetime after or equal to {{#limit}}',
  'datetime.beforeOrEqual': '{{#label}} must be a datetime before or equal to {{#limit}}',
  'datetime.max': '{{#label}} must be a datetime before or equal to {{#limit}}',
  'datetime.weekend': '{{#label}} is not a weekend',
  'datetime.weekday': '{{#label}} is not a weekday',
  'phone.base': '{{#label}} must be a phone number',
  'phone.invalid': '{{#label}} must be a valid phone number for {{#country}}',
  'phone.fixedLine': '{{#label}} must be a fixed line number for {{#country}}',
  'phone.mobile': '{{#label}} must be a mobile number for {{#country}}',
  'phone.strictFixedLine': '{{#label}} is not a fixed line number for {{#country}}',
  'phone.strictMobile': '{{#label}} is not a mobile number for {{#country}}',
  'phone.fixedLineOrMobile': '{{#label}} must be a fixed line or mobile number for {{#country}}',
  'phone.tollFree': '{{#label}} must be a toll-free number for {{#country}}',
  'phone.premiumRate': '{{#label}} must be a premium rate number for {{#country}}',
  'phone.sharedCost': '{{#label}} must be a shared cost number for {{#country}}',
  'phone.voip': '{{#label}} must be a VoIP number for {{#country}}',
  'phone.personalNumber': '{{#label}} must be a personal number for {{#country}}',
  'phone.pager': '{{#label}} must be a pager number for {{#country}}',
  'phone.uan': '{{#label}} must be a UAN number for {{#country}}',
  'phone.voicemail': '{{#label}} must be a voicemail number for {{#country}}',
  'phone.unknown': '{{#label}} must be an unknown type number for {{#country}}',
  'phone.types': '{{#label}} must be one of the specified phone types for {{#country}}',
  'country.AD': 'Andorra',
  'country.AE': 'United Arab Emirates',
  'country.AF': 'Afghanistan',
  'country.AG': 'Antigua and Barbuda',
  'country.AI': 'Anguilla',
  'country.AL': 'Albania',
  'country.AM': 'Armenia',
  'country.AO': 'Angola',
  'country.AQ': 'Antarctica',
  'country.AR': 'Argentina',
  'country.AS': 'American Samoa',
  'country.AT': 'Austria',
  'country.AU': 'Australia',
  'country.AW': 'Aruba',
  'country.AX': 'Aland Islands',
  'country.AZ': 'Azerbaijan',
  'country.BA': 'Bosnia and Herzegovina',
  'country.BB': 'Barbados',
  'country.BD': 'Bangladesh',
  'country.BE': 'Belgium',
  'country.BF': 'Burkina Faso',
  'country.BG': 'Bulgaria',
  'country.BH': 'Bahrain',
  'country.BI': 'Burundi',
  'country.BJ': 'Benin',
  'country.BL': 'Saint Barthelemy',
  'country.BM': 'Bermuda',
  'country.BN': 'Brunei',
  'country.BO': 'Bolivia',
  'country.BQ': 'Bonaire, Saint Eustatius and Saba',
  'country.BR': 'Brazil',
  'country.BS': 'Bahamas',
  'country.BT': 'Bhutan',
  'country.BV': 'Bouvet Island',
  'country.BW': 'Botswana',
  'country.BY': 'Belarus',
  'country.BZ': 'Belize',
  'country.CA': 'Canada',
  'country.CC': 'Cocos Islands',
  'country.CD': 'Democratic Republic of the Congo',
  'country.CF': 'Central African Republic',
  'country.CG': 'Republic of the Congo',
  'country.CH': 'Switzerland',
  'country.CI': 'Ivory Coast',
  'country.CK': 'Cook Islands',
  'country.CL': 'Chile',
  'country.CM': 'Cameroon',
  'country.CN': 'China',
  'country.CO': 'Colombia',
  'country.CR': 'Costa Rica',
  'country.CU': 'Cuba',
  'country.CV': 'Cape Verde',
  'country.CW': 'Curacao',
  'country.CX': 'Christmas Island',
  'country.CY': 'Cyprus',
  'country.CZ': 'Czech Republic',
  'country.DE': 'Germany',
  'country.DJ': 'Djibouti',
  'country.DK': 'Denmark',
  'country.DM': 'Dominica',
  'country.DO': 'Dominican Republic',
  'country.DZ': 'Algeria',
  'country.EC': 'Ecuador',
  'country.EE': 'Estonia',
  'country.EG': 'Egypt',
  'country.EH': 'Western Sahara',
  'country.ER': 'Eritrea',
  'country.ES': 'Spain',
  'country.ET': 'Ethiopia',
  'country.FI': 'Finland',
  'country.FJ': 'Fiji',
  'country.FK': 'Falkland Islands',
  'country.FM': 'Micronesia',
  'country.FO': 'Faroe Islands',
  'country.FR': 'France',
  'country.GA': 'Gabon',
  'country.GB': 'United Kingdom',
  'country.GD': 'Grenada',
  'country.GE': 'Georgia',
  'country.GF': 'French Guiana',
  'country.GG': 'Guernsey',
  'country.GH': 'Ghana',
  'country.GI': 'Gibraltar',
  'country.GL': 'Greenland',
  'country.GM': 'Gambia',
  'country.GN': 'Guinea',
  'country.GP': 'Guadeloupe',
  'country.GQ': 'Equatorial Guinea',
  'country.GR': 'Greece',
  'country.GS': 'South Georgia and the South Sandwich Islands',
  'country.GT': 'Guatemala',
  'country.GU': 'Guam',
  'country.GW': 'Guinea-Bissau',
  'country.GY': 'Guyana',
  'country.HK': 'Hong Kong',
  'country.HM': 'Heard Island and McDonald Islands',
  'country.HN': 'Honduras',
  'country.HR': 'Croatia',
  'country.HT': 'Haiti',
  'country.HU': 'Hungary',
  'country.ID': 'Indonesia',
  'country.IE': 'Ireland',
  'country.IL': 'Israel',
  'country.IM': 'Isle of Man',
  'country.IN': 'India',
  'country.IO': 'British Indian Ocean Territory',
  'country.IQ': 'Iraq',
  'country.IR': 'Iran',
  'country.IS': 'Iceland',
  'country.IT': 'Italy',
  'country.JE': 'Jersey',
  'country.JM': 'Jamaica',
  'country.JO': 'Jordan',
  'country.JP': 'Japan',
  'country.KE': 'Kenya',
  'country.KG': 'Kyrgyzstan',
  'country.KH': 'Cambodia',
  'country.KI': 'Kiribati',
  'country.KM': 'Comoros',
  'country.KN': 'Saint Kitts and Nevis',
  'country.KP': 'North Korea',
  'country.KR': 'South Korea',
  'country.KW': 'Kuwait',
  'country.KY': 'Cayman Islands',
  'country.KZ': 'Kazakhstan',
  'country.LA': 'Laos',
  'country.LB': 'Lebanon',
  'country.LC': 'Saint Lucia',
  'country.LI': 'Liechtenstein',
  'country.LK': 'Sri Lanka',
  'country.LR': 'Liberia',
  'country.LS': 'Lesotho',
  'country.LT': 'Lithuania',
  'country.LU': 'Luxembourg',
  'country.LV': 'Latvia',
  'country.LY': 'Libya',
  'country.MA': 'Morocco',
  'country.MC': 'Monaco',
  'country.MD': 'Moldova',
  'country.ME': 'Montenegro',
  'country.MF': 'Saint Martin',
  'country.MG': 'Madagascar',
  'country.MH': 'Marshall Islands',
  'country.MK': 'Macedonia',
  'country.ML': 'Mali',
  'country.MM': 'Myanmar',
  'country.MN': 'Mongolia',
  'country.MO': 'Macao',
  'country.MP': 'Northern Mariana Islands',
  'country.MQ': 'Martinique',
  'country.MR': 'Mauritania',
  'country.MS': 'Montserrat',
  'country.MT': 'Malta',
  'country.MU': 'Mauritius',
  'country.MV': 'Maldives',
  'country.MW': 'Malawi',
  'country.MX': 'Mexico',
  'country.MY': 'Malaysia',
  'country.MZ': 'Mozambique',
  'country.NA': 'Namibia',
  'country.NC': 'New Caledonia',
  'country.NE': 'Niger',
  'country.NF': 'Norfolk Island',
  'country.NG': 'Nigeria',
  'country.NI': 'Nicaragua',
  'country.NL': 'Netherlands',
  'country.NO': 'Norway',
  'country.NP': 'Nepal',
  'country.NR': 'Nauru',
  'country.NU': 'Niue',
  'country.NZ': 'New Zealand',
  'country.OM': 'Oman',
  'country.PA': 'Panama',
  'country.PE': 'Peru',
  'country.PF': 'French Polynesia',
  'country.PG': 'Papua New Guinea',
  'country.PH': 'Philippines',
  'country.PK': 'Pakistan',
  'country.PL': 'Poland',
  'country.PM': 'Saint Pierre and Miquelon',
  'country.PN': 'Pitcairn',
  'country.PR': 'Puerto Rico',
  'country.PS': 'Palestinian Territory',
  'country.PT': 'Portugal',
  'country.PW': 'Palau',
  'country.PY': 'Paraguay',
  'country.QA': 'Qatar',
  'country.RE': 'Reunion',
  'country.RO': 'Romania',
  'country.RS': 'Serbia',
  'country.RU': 'Russia',
  'country.RW': 'Rwanda',
  'country.SA': 'Saudi Arabia',
  'country.SB': 'Solomon Islands',
  'country.SC': 'Seychelles',
  'country.SD': 'Sudan',
  'country.SE': 'Sweden',
  'country.SG': 'Singapore',
  'country.SH': 'Saint Helena',
  'country.SI': 'Slovenia',
  'country.SJ': 'Svalbard and Jan Mayen',
  'country.SK': 'Slovakia',
  'country.SL': 'Sierra Leone',
  'country.SM': 'San Marino',
  'country.SN': 'Senegal',
  'country.SO': 'Somalia',
  'country.SR': 'Suriname',
  'country.SS': 'South Sudan',
  'country.ST': 'Sao Tome and Principe',
  'country.SV': 'El Salvador',
  'country.SX': 'Sint Maarten',
  'country.SY': 'Syria',
  'country.SZ': 'Swaziland',
  'country.TC': 'Turks and Caicos Islands',
  'country.TD': 'Chad',
  'country.TF': 'French Southern Territories',
  'country.TG': 'Togo',
  'country.TH': 'Thailand',
  'country.TJ': 'Tajikistan',
  'country.TK': 'Tokelau',
  'country.TL': 'East Timor',
  'country.TM': 'Turkmenistan',
  'country.TN': 'Tunisia',
  'country.TO': 'Tonga',
  'country.TR': 'Turkey',
  'country.TT': 'Trinidad and Tobago',
  'country.TV': 'Tuvalu',
  'country.TW': 'Taiwan',
  'country.TZ': 'Tanzania',
  'country.UA': 'Ukraine',
  'country.UG': 'Uganda',
  'country.UM': 'United States Minor Outlying Islands',
  'country.US': 'United States',
  'country.UY': 'Uruguay',
  'country.UZ': 'Uzbekistan',
  'country.VA': 'Vatican',
  'country.VC': 'Saint Vincent and the Grenadines',
  'country.VE': 'Venezuela',
  'country.VG': 'British Virgin Islands',
  'country.VI': 'U.S. Virgin Islands',
  'country.VN': 'Vietnam',
  'country.VU': 'Vanuatu',
  'country.WF': 'Wallis and Futuna',
  'country.WS': 'Samoa',
  'country.XK': 'Kosovo',
  'country.YE': 'Yemen',
  'country.YT': 'Mayotte',
  'country.ZA': 'South Africa',
  'country.ZM': 'Zambia',
  'country.ZW': 'Zimbabwe',
  'resourcefulIndex.searchField.placeholder': 'Search...',
  'resourcefulIndex.searchField.tooltip.title': 'Search Field Cheat Sheet',
  'resourcefulIndex.searchField.tooltip.searchForTermInsensitive':
    'Search for a term (case insensitive)',
  'resourcefulIndex.searchField.tooltip.searchForTermSensitive':
    'Search for a term (case sensitive)',
  'resourcefulIndex.searchField.tooltip.searchForTerminField':
    'Search for a term in a specific field',
  'resourcefulIndex.searchField.tooltip.searchForTermWithWildcards':
    'Search for a term with wildcards',
  'resourcefulIndex.searchField.tooltip.searchForWithBoolean': 'Search by boolean value',
  'resourcefulIndex.searchField.tooltip.searchForWithNull': 'Search by null value',
  'resourcefulIndex.searchField.tooltip.searchForNumericComparisons': 'Search by comparison',
  'resourcefulIndex.searchField.tooltip.searchForNumericRanges': 'Search by range',
  'resourcefulIndex.searchField.tooltip.searchForNumericRanges.inclusive': 'Inclusive',
  'resourcefulIndex.searchField.tooltip.searchForNumericRanges.exclusive': 'Exclusive',
  'resourcefulIndex.searchField.tooltip.searchWithBooleanOperators': 'Multiple Conditions',
  'resourcefulIndex.searchField.tooltip.searchWithUnaryOperators': 'Negation',
  'resourcefulIndex.searchField.tooltip.searchWithImplicitAnd': 'Implicit AND',
  'resourcefulIndex.searchField.tooltip.searchWithGrouping': 'Grouping',
  'resourcefulIndex.recordsTotal': '%d - %d of %d',
  'general.refresh': 'Refresh',
  'general.reset': 'Reset',
  'general.ok': 'OK',
  'general.off': 'Off',
  'general.save': 'Save',
  'general.discard': 'Discard',
  'general.add': 'Add',
  'general.start': 'Start',
  'general.end': 'End',
  'general.date': 'Date',
  'general.time': 'Time',
  'general.timezone': 'Timezone',
  'general.more': 'More',
  'grammar.and': '%s and %s',
  'grammar.is': 'is',
  'grammar.are': 'are',
  'abbreviations.seconds': 's',
  'abbreviations.minutes': 'm',
  'abbreviations.hours': 'h',
  'fields.id': 'ID',
  'resourcefulIndex.table.noResults.title': 'No Results Found',
  'resourcefulIndex.table.noResults.text': 'No records match your search criteria.',
  'resourcefulIndex.table.noData.title': 'No Records',
  'resourcefulIndex.table.noData.text': 'There are no records to display.',
  'resourcefulIndex.table.loading.text': 'Your results will appear here shortly.',
  'resourcefulIndex.table.badRequest.title': 'Bad Request',
  'resourcefulIndex.table.badRequest.text': 'Your request failed with error code "%s"',
  'resourcefulIndex.columnControlButton.cta': 'Columns',
  'resourcefulIndex.filterControlButton.cta': 'Filters',
  'resourcefulIndex.sortingControlButton.cta': 'Sorting',
  'resourcefulIndex.bulkActionsControlButton.cta': 'Bulk Actions',
  'resourcefulIndex.bulkUpdateControlButton.cta': 'Bulk Edit',
  'resourcefulIndex.downloadControlButton.cta': 'Download',
  'resourcefulIndex.perPage': 'Per Page',
  'resourcefulIndex.pageOf': '%d of %d',
  'resourcefulIndex.jumpToPage': 'Jump to page %d',
  'lucid.resourceful.index.columnsControls.filter.label': 'Filter Columns',
  'lucid.resourceful.index.sortsControls.filter.label': 'Filter Sortable Columns',
  'lucid.resourceful.index.columnsControls.dispositionDialog.headline': 'You have unsaved changes',
  'lucid.resourceful.index.columnsControls.dispositionDialog.title':
    'Would you like to save your changes?',
  'lucid.resourceful.index.sortsControls.dispositionDialog.headline': 'You have unsaved changes',
  'lucid.resourceful.index.sortsControls.dispositionDialog.title':
    'Would you like to save your changes?',
  'lucid.resourceful.index.filtersControls.dispositionDialog.headline': 'You have unsaved changes',
  'lucid.resourceful.index.filtersControls.dispositionDialog.title':
    'Would you like to save your changes?',
  'filters.groups.operators.AND': 'Match All',
  'filters.groups.operators.OR': 'Match Any',
  'lucid.resourceful.index.filtersControls.addGroup': 'Add Group',
  'lucid.resourceful.index.filtersControls.addCondition': 'Add Rule',
  'lucid.resourceful.index.filtersControls.groupEmpty.headline': 'Empty Group',
  'lucid.resourceful.index.filtersControls.groupEmpty.title': 'This group has no conditions',
  'lucid.resourceful.index.filtersControls.invalidDialog.headline': 'Validation Errors Found',
  'lucid.resourceful.index.filtersControls.invalidDialog.title':
    'Unable to save filters because one or more rules contain errors',
  'filterGroupConditionElement.unknownValidationError':
    'An unknown validation error has occured. Please check the console for more information.',
  'filterGroupConditionElement.notValid':
    'The filter condition is neither a valid group nor a valid rule.',
  'filterGroupElement.notValid': 'The group is not configured correctly',
  'filterGroupElement.model.condition.singular': 'condition',
  'filterGroupElement.model.condition.plural': 'conditions',
  'filterGroupElement.conditions.invalid': 'The %s %s %s invalid',
  'filterConditionElement.field.field': 'Property',
  'filterConditionElement.field.operator': 'Comparison',
  'filterConditionElement.field.arguments': 'Criteria',
  'filterConditionArgumentCell.badIndex': 'One of the "criteria"',
  'filterConditionArgumentCell.nthArgument': 'The %s "criteria"',
  'filterConditionElement.field.field.hint': 'The property to filter on',
  'filterConditionElement.field.operator.hint': 'The comparison operator to use',
  'filterConditionElement.field.arguments.hint': 'The criteria for the filter',
  'filterConditionElement.validation.field.string.empty': '{{#label}} is required',
  'filterConditionElement.validation.operator.string.empty': 'Select a valid {{#label}}',
  'filterConditionElement.validation.operator.any.only': 'Select a valid {{#label}}',
  'filterConditionElement.validation.arguments.array.sparse':
    '{{#label}} is missing required information',
  'filterConditionElement.validation.arguments.array.length': '{{#label}} is required',
  'filterConditionElement.operator.string.=': 'is exactly',
  'filterConditionElement.operator.string.!=': 'is not exactly',
  'filterConditionElement.operator.string.~': 'contains',
  'filterConditionElement.operator.string.!~': 'does not contain',
  'filterConditionElement.operator.string.^': 'starts with',
  'filterConditionElement.operator.string.$': 'ends with',
  'filterConditionElement.operator.string.*~': 'contains',
  'filterConditionElement.operator.string.!': 'is not',
  'filterConditionElement.operator.string.in': 'is one of',
  'filterConditionElement.operator.string.!in': 'is not one of',
  'filterConditionElement.operator.string.*': 'is set',
  'filterConditionElement.operator.string.!*': 'is not set',
  'filterConditionElement.operator.string.null': 'is null',
  'filterConditionElement.operator.string.!null': 'is not null',
  'filterConditionElement.operator.number.=': 'is equal to',
  'filterConditionElement.operator.number.!=': 'is not equal to',
  'filterConditionElement.operator.number.>': 'is greater than',
  'filterConditionElement.operator.number.<': 'is less than',
  'filterConditionElement.operator.number.>=': 'is greater than or equal to',
  'filterConditionElement.operator.number.<=': 'is less than or equal to',
  'filterConditionElement.operator.number.><': 'is between',
  'filterConditionElement.operator.number.!><': 'is not between',
  'filterConditionElement.operator.number.in': 'is in list',
  'filterConditionElement.operator.number.!in': 'is not in list',
  'filterConditionElement.operator.number.*': 'is set',
  'filterConditionElement.operator.number.!*': 'is not set',
  'filterConditionElement.operator.number.null': 'is null',
  'filterConditionElement.operator.number.!null': 'is not null',
  'filterConditionElement.operator.integer.=': 'is equal to',
  'filterConditionElement.operator.integer.!=': 'is not equal to',
  'filterConditionElement.operator.integer.>': 'is greater than',
  'filterConditionElement.operator.integer.<': 'is less than',
  'filterConditionElement.operator.integer.>=': 'is greater than or equal to',
  'filterConditionElement.operator.integer.<=': 'is less than or equal to',
  'filterConditionElement.operator.integer.><': 'is between',
  'filterConditionElement.operator.integer.!><': 'is not between',
  'filterConditionElement.operator.integer.in': 'is in list',
  'filterConditionElement.operator.integer.!in': 'is not in list',
  'filterConditionElement.operator.integer.*': 'is set',
  'filterConditionElement.operator.integer.!*': 'is not set',
  'filterConditionElement.operator.integer.null': 'is null',
  'filterConditionElement.operator.integer.!null': 'is not null',
  'filterConditionElement.operator.bigint.=': 'is equal to',
  'filterConditionElement.operator.bigint.!=': 'is not equal to',
  'filterConditionElement.operator.bigint.>': 'is greater than',
  'filterConditionElement.operator.bigint.<': 'is less than',
  'filterConditionElement.operator.bigint.>=': 'is greater than or equal to',
  'filterConditionElement.operator.bigint.<=': 'is less than or equal to',
  'filterConditionElement.operator.bigint.><': 'is between',
  'filterConditionElement.operator.bigint.!><': 'is not between',
  'filterConditionElement.operator.bigint.in': 'is in list',
  'filterConditionElement.operator.bigint.!in': 'is not in list',
  'filterConditionElement.operator.bigint.*': 'is set',
  'filterConditionElement.operator.bigint.!*': 'is not set',
  'filterConditionElement.operator.bigint.null': 'is null',
  'filterConditionElement.operator.bigint.!null': 'is not null',
  'filterConditionElement.operator.unsignedInteger.=': 'is equal to',
  'filterConditionElement.operator.unsignedInteger.!=': 'is not equal to',
  'filterConditionElement.operator.unsignedInteger.>': 'is greater than',
  'filterConditionElement.operator.unsignedInteger.<': 'is less than',
  'filterConditionElement.operator.unsignedInteger.>=': 'is greater than or equal to',
  'filterConditionElement.operator.unsignedInteger.<=': 'is less than or equal to',
  'filterConditionElement.operator.unsignedInteger.><': 'is between',
  'filterConditionElement.operator.unsignedInteger.!><': 'is not between',
  'filterConditionElement.operator.unsignedInteger.in': 'is in list',
  'filterConditionElement.operator.unsignedInteger.!in': 'is not in list',
  'filterConditionElement.operator.unsignedInteger.*': 'is set',
  'filterConditionElement.operator.unsignedInteger.!*': 'is not set',
  'filterConditionElement.operator.unsignedInteger.null': 'is null',
  'filterConditionElement.operator.unsignedInteger.!null': 'is not null',
  'filterConditionElement.operator.date.=': 'is equal to',
  'filterConditionElement.operator.date.!=': 'is not equal to',
  'filterConditionElement.operator.date.>': 'is after',
  'filterConditionElement.operator.date.<': 'is before',
  'filterConditionElement.operator.date.>=': 'is on or after',
  'filterConditionElement.operator.date.<=': 'is on or before',
  'filterConditionElement.operator.date.><': 'is between',
  'filterConditionElement.operator.date.!><': 'is not between',
  'filterConditionElement.operator.date.*': 'is set',
  'filterConditionElement.operator.date.!*': 'is not set',
  'filterConditionElement.operator.date.null': 'is null',
  'filterConditionElement.operator.date.!null': 'is not null',
  'filterConditionElement.operator.date.t': 'is today',
  'filterConditionElement.operator.date.yd': 'was yesterday',
  'filterConditionElement.operator.date.tm': 'is tomorrow',
  'filterConditionElement.operator.date.w': 'is this week',
  'filterConditionElement.operator.date.lw': 'was last week',
  'filterConditionElement.operator.date.l2w': 'was within the last 2 weeks',
  'filterConditionElement.operator.date.nw': 'is next week',
  'filterConditionElement.operator.date.m': 'is this month',
  'filterConditionElement.operator.date.lm': 'was last month',
  'filterConditionElement.operator.date.nm': 'is next month',
  'filterConditionElement.operator.date.q': 'is this quarter',
  'filterConditionElement.operator.date.lq': 'was last quarter',
  'filterConditionElement.operator.date.nq': 'is next quarter',
  'filterConditionElement.operator.date.y': 'is this year',
  'filterConditionElement.operator.date.ly': 'was last year',
  'filterConditionElement.operator.date.ny': 'is next year',
  'filterConditionElement.operator.date.><t+': 'is within the last N days',
  'filterConditionElement.operator.date.><t-': 'is within the next N days',
  'filterConditionElement.operator.date.>t+': 'is more than N days ago',
  'filterConditionElement.operator.date.<t+': 'is less than N days ago',
  'filterConditionElement.operator.date.>t-': 'is more than N days from now',
  'filterConditionElement.operator.date.<t-': 'is less than N days from now',
  'filterConditionElement.operator.date.t+': 'was exactly N days ago',
  'filterConditionElement.operator.date.t-': 'is exactly N days from now',
  'filterConditionElement.operator.date.wtd': 'is since the beginning of this week',
  'filterConditionElement.operator.date.mtd': 'is since the beginning of this month',
  'filterConditionElement.operator.date.qtd': 'is since the beginning of this quarter',
  'filterConditionElement.operator.date.ytd': 'is since the beginning of this year',
  'filterConditionElement.operator.date.w+': 'was within the last N weeks',
  'filterConditionElement.operator.date.w-': 'is within the next N weeks',
  'filterConditionElement.operator.date.m+': 'was within the last N months',
  'filterConditionElement.operator.date.m-': 'is within the next N months',
  'filterConditionElement.operator.date.q+': 'was within the last N quarters',
  'filterConditionElement.operator.date.q-': 'is within the next N quarters',
  'filterConditionElement.operator.date.y+': 'was within the last N years',
  'filterConditionElement.operator.date.y-': 'is within the next N years',
  'filterConditionElement.operator.dateTime.=': 'is equal to',
  'filterConditionElement.operator.dateTime.!=': 'is not equal to',
  'filterConditionElement.operator.dateTime.>': 'is after',
  'filterConditionElement.operator.dateTime.<': 'is before',
  'filterConditionElement.operator.dateTime.>=': 'is on or after',
  'filterConditionElement.operator.dateTime.<=': 'is on or before',
  'filterConditionElement.operator.dateTime.><': 'is between',
  'filterConditionElement.operator.dateTime.!><': 'is not between',
  'filterConditionElement.operator.dateTime.*': 'is set',
  'filterConditionElement.operator.dateTime.!*': 'is not set',
  'filterConditionElement.operator.dateTime.null': 'is null',
  'filterConditionElement.operator.dateTime.!null': 'is not null',
  'filterConditionElement.operator.dateTime.t': 'is today',
  'filterConditionElement.operator.dateTime.yd': 'was yesterday',
  'filterConditionElement.operator.dateTime.tm': 'is tomorrow',
  'filterConditionElement.operator.dateTime.w': 'is this week',
  'filterConditionElement.operator.dateTime.lw': 'was last week',
  'filterConditionElement.operator.dateTime.l2w': 'was within the last 2 weeks',
  'filterConditionElement.operator.dateTime.nw': 'is next week',
  'filterConditionElement.operator.dateTime.m': 'is this month',
  'filterConditionElement.operator.dateTime.lm': 'was last month',
  'filterConditionElement.operator.dateTime.nm': 'is next month',
  'filterConditionElement.operator.dateTime.q': 'is this quarter',
  'filterConditionElement.operator.dateTime.lq': 'was last quarter',
  'filterConditionElement.operator.dateTime.nq': 'is next quarter',
  'filterConditionElement.operator.dateTime.y': 'is this year',
  'filterConditionElement.operator.dateTime.ly': 'was last year',
  'filterConditionElement.operator.dateTime.ny': 'is next year',
  'filterConditionElement.operator.dateTime.><t+': 'is within the last N days',
  'filterConditionElement.operator.dateTime.><t-': 'is within the next N days',
  'filterConditionElement.operator.dateTime.>t+': 'is more than N days ago',
  'filterConditionElement.operator.dateTime.<t+': 'is less than N days ago',
  'filterConditionElement.operator.dateTime.>t-': 'is more than N days from now',
  'filterConditionElement.operator.dateTime.<t-': 'is less than N days from now',
  'filterConditionElement.operator.dateTime.t+': 'was exactly N days ago',
  'filterConditionElement.operator.dateTime.t-': 'is exactly N days from now',
  'filterConditionElement.operator.dateTime.wtd': 'is since the beginning of this week',
  'filterConditionElement.operator.dateTime.mtd': 'is since the beginning of this month',
  'filterConditionElement.operator.dateTime.qtd': 'is since the beginning of this quarter',
  'filterConditionElement.operator.dateTime.ytd': 'is since the beginning of this year',
  'filterConditionElement.operator.dateTime.h+': 'was within the last N hours',
  'filterConditionElement.operator.dateTime.h-': 'is within the next N hours',
  'filterConditionElement.operator.dateTime.w+': 'was within the last N weeks',
  'filterConditionElement.operator.dateTime.w-': 'is within the next N weeks',
  'filterConditionElement.operator.dateTime.m+': 'was within the last N months',
  'filterConditionElement.operator.dateTime.m-': 'is within the next N months',
  'filterConditionElement.operator.dateTime.q+': 'was within the last N quarters',
  'filterConditionElement.operator.dateTime.q-': 'is within the next N quarters',
  'filterConditionElement.operator.dateTime.y+': 'was within the last N years',
  'filterConditionElement.operator.dateTime.y-': 'is within the next N years',
  'filterConditionElement.operator.dateTime.hr': 'is this hour',
  'filterConditionElement.operator.dateTime.lhr': 'was the previous hour',
  'filterConditionElement.operator.dateTime.nhr': 'is the next hour',
  'filterConditionElement.operator.dateTime.fy': 'is this fiscal year',
  'filterConditionElement.operator.dateTime.lfy': 'was last fiscal year',
  'filterConditionElement.operator.dateTime.fq': 'is this fiscal quarter',
  'filterConditionElement.operator.dateTime.lfq': 'was last fiscal quarter',
  'filterConditionElement.operator.boolean.=': 'is',
  'filterConditionElement.operator.boolean.!=': 'is not',
  'filterConditionElement.operator.boolean.*': 'is set',
  'filterConditionElement.operator.boolean.!*': 'is not set',
  'filterConditionElement.operator.boolean.null': 'is null',
  'filterConditionElement.operator.boolean.!null': 'is not null',
  'filterConditionElement.operator.binary.=': 'is equal to',
  'filterConditionElement.operator.binary.!=': 'is not equal to',
  'filterConditionElement.operator.binary.*': 'is set',
  'filterConditionElement.operator.binary.!*': 'is not set',
  'filterConditionElement.operator.binary.null': 'is null',
  'filterConditionElement.operator.binary.!null': 'is not null',
  'filterConditionElement.operator.binary.empty': 'is empty',
  'filterConditionElement.operator.binary.!empty': 'is not empty',
  'resourceful.fields.multiple.noValues': 'No values defined',
  'boolean.true': 'Yes',
  'boolean.false': 'No',
  'boolean.undetermined': 'Undetermined',
  'resourceful.action.openInApp': 'Open in Current Tab',
  'resourceful.action.openInNew': 'Open in New Tab',
  'resourceful.action.copyLink': 'Copy Link',
  'resourceful.clipboard.copiedToClipboard': 'Copied to clipboard',
  'resourceful.clipboard.copyFailed': 'Failed to copy to clipboard',
  'resourceful.alert.disposition.ok': 'OK',
  'resourceful.alert.disposition.confirm': 'Yes',
  'resourceful.alert.disposition.deny': 'No',
  'resourceful.alert.disposition.cancel': 'Cancel',
  'resourcefulIndex.bulkActionProcessing.preparing.title': 'Preparing bulk action',
  'resourcefulIndex.bulkActionProcessing.preparing.text':
    'Please wait while we prepare your bulk action.',
  'resourcefulIndex.bulkActionProcessing.selection.title': 'Apply to page or all results?',
  'resourcefulIndex.bulkActionProcessing.selection.text':
    'Do you want to apply this action to only the %s selected items, or to all %s matching records?',
  'resourcefulIndex.bulkActionProcessing.selection.confirmButtonText': 'Apply to Page',
  'resourcefulIndex.bulkActionProcessing.selection.denyButtonText': 'Apply to All',
  'resourcefulIndex.bulkActionProcessing.selection.cancelButtonText': 'Cancel',
  'resourcefulIndex.bulkActionProcessing.tooManyRecords.title': 'Too many records selected',
  'resourcefulIndex.bulkActionProcessing.tooManyRecords.text':
    'You have selected %s records but you can only apply this action to a maximum of %s records at a time. Please refine your selection and try again.',
  'resourcefulIndex.bulkActionProcessing.largeRecords.title': 'Large Selection',
  'resourcefulIndex.bulkActionProcessing.largeRecords.text':
    'You are about to apply this action to %s records. Are you sure you want to continue?',
  'resourcefulIndex.bulkActionProcessing.recordCountConfirmation.title': 'Confirmation',
  'resourcefulIndex.bulkActionProcessing.recordCountConfirmation.text':
    'You are about to apply this action to %s records. Are you sure you want to continue?',
  'resourcefulIndex.bulkActionProcessing.fetchingRecords.title': 'Fetching records',
  'resourcefulIndex.bulkActionProcessing.fetchingRecords.text':
    'Please wait while we fetch the records to be processed.',
  'resourcefulIndex.bulkActionProcessing.unrecoverableError.title': 'Unrecoverable Error',
  'resourcefulIndex.bulkActionProcessing.unrecoverableError.text':
    'An unrecoverable error occurred while processing your request.',
  'resourcefulIndex.bulkActionProcessing.unprocessableRecords.title': 'Unprocessable Records',
  'resourcefulIndex.bulkActionProcessing.unprocessableRecords.text':
    'Operation aborted because one or more records did not meet constraints.',
  'resourcefulIndex.bulkActionProcessing.title': 'Bulk %s Operation Progress',
  'resourcefulIndex.bulkActionProcessing.successes': 'Successful',
  'resourcefulIndex.bulkActionProcessing.errors': 'Failed',
  'resourcefulIndex.bulkActionProcessing.undetermined': 'Undetermined',
  'resourcefulIndex.bulkActionProcessing.processed': 'Processed',
  'resourcefulIndex.bulkActionProcessing.completeButton': 'Close',
  'resourcefulIndex.bulkUpdate.title': 'Bulk Edit',
  'resourcefulIndex.bulkUpdate.selectFieldsLabel': 'Select fields to edit',
  'resourcefulIndex.bulkUpdate.successTitle': 'Bulk Edit Successful',
  'resourcefulIndex.bulkUpdate.successText': 'The selected records have been updated successfully.',
  'resourcefulIndex.bulkUpdate.validationErrorTitle': 'Validation Error',
  'resourcefulIndex.bulkUpdate.validationErrorText':
    'Please correct the errors in the form before saving.',
  'resourcefulIndex.bulkUpdate.failureTitle': 'Bulk Edit Failed',
  'resourcefulIndex.bulkUpdate.failureText': 'Failed to update the selected records.',
  'resourcefulIndex.download.title': 'Download Records',
  'exporter.form.fields.format.label': 'File Type',
  'exporter.form.fields.filename.label': 'File Name',
  'exporter.form.fields.scope.options.all': 'All results matching filters',
  'exporter.form.fields.scope.options.page': "This page's results",
  'exporter.form.fields.scope.options.selected': 'Selected records',
  'exporter.form.fields.scope.label': 'Records to download',
  'exporter.form.fields.includeAllColumns.label': 'Include Hidden Columns',
  'exporter.form.fields.humanizeNames.label': 'Use Human-Friendly Column Names',
  'exporter.form.fields.humanizeData.label': 'Use Human-Friendly Data',
  'exporter.form.actions.download': 'Download',
  'resourcefulIndex.download.defaultFilename': 'downloaded_records',
  'exporter.alerts.largeExport.title': 'This may take a while',
  'exporter.alerts.largeExport.text':
    'You are about to download %s records. This may take a while. Are you sure you want to continue?',
  'exporter.alerts.largeExport.confirmButtonText': 'Continue Download',
  'exporter.alerts.largeExport.cancelButtonText': 'Cancel',
  'exporter.status.fetching': 'Fetching %s of %s records',
  'exporter.status.generating': 'Finalizing file',
  'exporter.status.completed': 'Your download is ready',
  'exporter.status.pending': 'Preparing your download',
  'exporter.form.actions.cancel': 'Cancel Download',
  'exporter.form.actions.close': 'Close',
  'exporter.alerts.cancelExport.title': 'Confirm Cancellation',
  'exporter.alerts.cancelExport.text': 'Are you sure you want to cancel?',
  'exporter.alerts.cancelExport.confirmButtonText': 'Cancel Download',
  'exporter.alerts.cancelExport.denyButtonText': 'Nevermind',
  'exporter.alerts.cancelExport.cancelled.title': 'Download Cancelled',
  'exporter.alerts.cancelExport.cancelled.text': 'Your download was cancelled per your request.',
  'resourcefulRecord.alerts.prevented.title': 'Submission Prevented',
  'resourcefulRecord.alerts.prevented.text': 'The form submission was prevented.',
  'resourcefulRecord.alerts.success.title': 'Success',
  'resourcefulRecord.alerts.success.text': 'The operation completed successfully.',
  'resourcefulRecord.alerts.failure.title': 'Operation Failed',
  'resourcefulRecord.alerts.failure.text': 'The operation failed to complete.',
  'resourcefulRecord.alerts.exception.title': 'Unexpected Error',
  'resourcefulRecord.alerts.exception.text': 'An unexpected error occurred.',
  'resourcefulRecord.meta.badRequest.title': 'Unable to Load Metadata',
  'resourcefulRecord.meta.badRequest.text': 'Failed to load record metadata (Error: %s)',
  'resourcefulRecord.record.badRequest.title': 'Unable to Load Record',
  'resourcefulRecord.record.badRequest.text': 'Failed to load the record (Error: %s)',
  'resourcefulRecord.form.badRequest.title': 'Unable to Load Form',
  'resourcefulRecord.form.badRequest.text': 'Failed to load the form.',
  'resourcefulRecord.buttons.index.cta': 'Back to List',
  'resourcefulRecord.buttons.create.cta': 'Create New',
  'resourcefulRecord.buttons.read.cta': 'View',
  'resourcefulRecord.buttons.update.cta': 'Edit',
  'resourcefulRecord.buttons.delete.cta': 'Delete',
}