{
"id": 64, "locale": "en", "english_name": "English", "native_name": "English", "right_to_left": false, "flag_url": "https://cdn.translationexchange.com/flags/default/languages/16/en.png", "contexts": { "list": { "rules": { "one": { "description": "{token} contains 1 element", "conditions": "(= 1 @count)", "conditions_expression": [ "=", 1, "@count" ] }, "other": { "description": "{token} contains at least 2 elements" } }, "keys": [ "one", "other" ], "default_key": "other", "token_expression": "/.*(items|list)(\\d)*$/", "variables": [ "@count" ], "token_mapping": [ "unsupported", { "one": "{$0}", "other": "{$1}" } ] }, "date": { "rules": { "future": { "description": "{token} is in the past", "conditions": "(< @date (today))", "conditions_expression": [ "<", "@date", [ "today" ] ] }, "present": { "description": "{token} is in the present", "conditions": "(= @date (today))", "conditions_expression": [ "=", "@date", [ "today" ] ] }, "past": { "description": "{token} is in the future", "conditions": "(> @date (today))", "conditions_expression": [ ">", "@date", [ "today" ] ] } }, "keys": [ "past", "present", "future" ], "default_key": "present", "token_expression": "/.*(date|time)(\\d)*$/", "variables": [ "@date" ], "token_mapping": [ "unsupported", "unsupported", { "past": "{$0}", "present": "{$1}", "future": "{$2}" } ] }, "number": { "rules": { "one": { "description": "{token} is 1", "examples": "1", "conditions": "(= @n 1)", "conditions_expression": [ "=", "@n", 1 ] }, "other": { "description": "{token} is not 1", "examples": "0, 2-999; 1.2, 2.07..." } }, "keys": [ "one", "other" ], "default_key": "other", "token_expression": "/.*(count|num|minutes|seconds|hours|sum|total)(\\d)*$/", "variables": [ "@n" ], "token_mapping": [ { "one": "{$0}", "other": "{$0::plural}" }, { "one": "{$0}", "other": "{$1}" } ] }, "gender": { "rules": { "female": { "description": "{token} is a female", "conditions": "(= 'female' @gender)", "conditions_expression": [ "=", "female", "@gender" ] }, "male": { "description": "{token} is a male", "conditions": "(= 'male' @gender)", "conditions_expression": [ "=", "male", "@gender" ] }, "other": { "description": "{token}'s gender is unknown" } }, "keys": [ "male", "female", "other" ], "default_key": "other", "token_expression": "/.*(user|translator|profile|actor|target)(\\d)*$/", "variables": [ "@gender" ], "token_mapping": [ { "other": "{$0}" }, { "male": "{$0}", "female": "{$1}", "other": "{$0}/{$1}" }, { "male": "{$0}", "female": "{$1}", "other": "{$2}" } ] }, "genders": { "rules": { "female": { "description": "{token} contains 1 female", "conditions": "(&& (= 1 (count @genders)) (all @genders 'female'))", "conditions_expression": [ "&&", [ "=", 1, [ "count", "@genders" ] ], [ "all", "@genders", "female" ] ] }, "male": { "description": "{token} contains 1 male", "conditions": "(&& (= 1 (count @genders)) (all @genders 'male'))", "conditions_expression": [ "&&", [ "=", 1, [ "count", "@genders" ] ], [ "all", "@genders", "male" ] ] }, "other": { "description": "{token} contains at least 2 people" }, "unknown": { "description": "{token} contains 1 person with unknown gender", "conditions": "(&& (= 1 (count @genders)) (all @genders 'unknown'))", "conditions_expression": [ "&&", [ "=", 1, [ "count", "@genders" ] ], [ "all", "@genders", "unknown" ] ] } }, "keys": [ "male", "female", "unknown", "other" ], "default_key": "other", "token_expression": "/.*(users|profiles|actors|targets)(\\d)*$/", "variables": [ "@genders" ], "token_mapping": [ { "male": "{$0}", "female": "{$0}", "unknown": "{$0}", "other": "{$0}" }, { "male": "{$0}", "female": "{$0}", "unknown": "{$0}", "other": "{$1}" }, { "male": "{$0}", "female": "{$1}", "unknown": "{$0}/{$1}", "other": "{$2}" }, { "male": "{$0}", "female": "{$1}", "unknown": "{$2}", "other": "{$3}" } ] } }, "cases": { "times": { "rules": [ { "description": "replace '1' with 'once'", "conditions": "(= 1 @value)", "conditions_expression": [ "=", 1, "@value" ], "operations": "(replace '1' 'once' @value)", "operations_expression": [ "replace", "1", "once", "@value" ] }, { "description": "replace '2' with 'twice'", "conditions": "(= 2 @value)", "conditions_expression": [ "=", 2, "@value" ], "operations": "(replace '2' 'twice' @value)", "operations_expression": [ "replace", "2", "twice", "@value" ] }, { "description": "in all other cases, append x times", "conditions": "(true)", "conditions_expression": [ "true" ], "operations": "(append ' times' @value)", "operations_expression": [ "append", " times", "@value" ] } ], "latin_name": "Iteration", "description": "The iteration form of the cardinal numbers", "application": "phrase" }, "plural": { "rules": [ { "description": "Uncountable word", "conditions": "(in 'sheep,fish,series,species,money,rice,information,equipment' @value)", "conditions_expression": [ "in", "sheep,fish,series,species,money,rice,information,equipment", "@value" ], "operations": "@value", "operations_expression": "@value" }, { "description": "Irregular word", "conditions": "(= 'move' @value)", "conditions_expression": [ "=", "move", "@value" ], "operations": "(quote 'moves')", "operations_expression": [ "quote", "moves" ] }, { "description": "Irregular word", "conditions": "(= 'sex' @value)", "conditions_expression": [ "=", "sex", "@value" ], "operations": "(quote 'sexes')", "operations_expression": [ "quote", "sexes" ] }, { "description": "Irregular word", "conditions": "(= 'child' @value)", "conditions_expression": [ "=", "child", "@value" ], "operations": "(quote 'children')", "operations_expression": [ "quote", "children" ] }, { "description": "Irregular word", "conditions": "(= 'person' @value)", "conditions_expression": [ "=", "person", "@value" ], "operations": "(quote 'people')", "operations_expression": [ "quote", "people" ] }, { "conditions": "(match '/(quiz)$/i' @value)", "conditions_expression": [ "match", "/(quiz)$/i", "@value" ], "operations": "(replace '/(quiz)$/i' '$1zes' @value)", "operations_expression": [ "replace", "/(quiz)$/i", "$1zes", "@value" ] }, { "conditions": "(match '/^(ox)$/i' @value)", "conditions_expression": [ "match", "/^(ox)$/i", "@value" ], "operations": "(replace '/^(ox)$/i' '$1en' @value)", "operations_expression": [ "replace", "/^(ox)$/i", "$1en", "@value" ] }, { "conditions": "(match '/([m|l])ouse$/i' @value)", "conditions_expression": [ "match", "/([m|l])ouse$/i", "@value" ], "operations": "(replace '/([m|l])ouse$/i' '$1ice' @value)", "operations_expression": [ "replace", "/([m|l])ouse$/i", "$1ice", "@value" ] }, { "conditions": "(match '/(matr|vert|ind)ix|ex$/i' @value)", "conditions_expression": [ "match", "/(matr|vert|ind)ix|ex$/i", "@value" ], "operations": "(replace '/(matr|vert|ind)ix|ex$/i' '$1ices' @value)", "operations_expression": [ "replace", "/(matr|vert|ind)ix|ex$/i", "$1ices", "@value" ] }, { "conditions": "(match '/(x|ch|ss|sh)$/i' @value)", "conditions_expression": [ "match", "/(x|ch|ss|sh)$/i", "@value" ], "operations": "(replace '/(x|ch|ss|sh)$/i' '$1es' @value)", "operations_expression": [ "replace", "/(x|ch|ss|sh)$/i", "$1es", "@value" ] }, { "conditions": "(match '/([^aeiouy]|qu)y$/i' @value)", "conditions_expression": [ "match", "/([^aeiouy]|qu)y$/i", "@value" ], "operations": "(replace '/([^aeiouy]|qu)y$/i' '$1ies' @value)", "operations_expression": [ "replace", "/([^aeiouy]|qu)y$/i", "$1ies", "@value" ] }, { "conditions": "(match '/([^aeiouy]|qu)ies$/i' @value)", "conditions_expression": [ "match", "/([^aeiouy]|qu)ies$/i", "@value" ], "operations": "(replace '/([^aeiouy]|qu)ies$/i' '$1y' @value)", "operations_expression": [ "replace", "/([^aeiouy]|qu)ies$/i", "$1y", "@value" ] }, { "conditions": "(match '/(hive)$/i' @value)", "conditions_expression": [ "match", "/(hive)$/i", "@value" ], "operations": "(replace '/(hive)$/i' '$1s' @value)", "operations_expression": [ "replace", "/(hive)$/i", "$1s", "@value" ] }, { "conditions": "(match '/(?:([^f])fe|([lr])f)$/i' @value)", "conditions_expression": [ "match", "/(?:([^f])fe|([lr])f)$/i", "@value" ], "operations": "(replace '/(?:([^f])fe|([lr])f)$/i' '$1$2ves' @value)", "operations_expression": [ "replace", "/(?:([^f])fe|([lr])f)$/i", "$1$2ves", "@value" ] }, { "conditions": "(match '/sis$/i' @value)", "conditions_expression": [ "match", "/sis$/i", "@value" ], "operations": "(replace '/sis$/i' 'ses' @value)", "operations_expression": [ "replace", "/sis$/i", "ses", "@value" ] }, { "conditions": "(match '/([ti])um$/i' @value)", "conditions_expression": [ "match", "/([ti])um$/i", "@value" ], "operations": "(replace '/([ti])um$/i' '$1a' @value)", "operations_expression": [ "replace", "/([ti])um$/i", "$1a", "@value" ] }, { "conditions": "(match '/(buffal|tomat|potat)o$/i' @value)", "conditions_expression": [ "match", "/(buffal|tomat|potat)o$/i", "@value" ], "operations": "(replace '/(buffal|tomat|potat)o$/i' '$1oes' @value)", "operations_expression": [ "replace", "/(buffal|tomat|potat)o$/i", "$1oes", "@value" ] }, { "conditions": "(match '/(bu)s$/i' @value)", "conditions_expression": [ "match", "/(bu)s$/i", "@value" ], "operations": "(replace '/(bu)s$/i' '$1ses' @value)", "operations_expression": [ "replace", "/(bu)s$/i", "$1ses", "@value" ] }, { "conditions": "(match '/(alias|status)$/i' @value)", "conditions_expression": [ "match", "/(alias|status)$/i", "@value" ], "operations": "(replace '/(alias|status)$/i' '$1es' @value)", "operations_expression": [ "replace", "/(alias|status)$/i", "$1es", "@value" ] }, { "conditions": "(match '/(octop)us$/i' @value)", "conditions_expression": [ "match", "/(octop)us$/i", "@value" ], "operations": "(replace '/(octop)us$/i' '$1i' @value)", "operations_expression": [ "replace", "/(octop)us$/i", "$1i", "@value" ] }, { "conditions": "(match '/(ax|test)is$/i' @value)", "conditions_expression": [ "match", "/(ax|test)is$/i", "@value" ], "operations": "(replace '/(ax|test)is$/i' '$1es' @value)", "operations_expression": [ "replace", "/(ax|test)is$/i", "$1es", "@value" ] }, { "conditions": "(match '/us$/i' @value)", "conditions_expression": [ "match", "/us$/i", "@value" ], "operations": "(replace '/us$/i' '$1es' @value)", "operations_expression": [ "replace", "/us$/i", "$1es", "@value" ] }, { "conditions": "(match '/s$/i' @value)", "conditions_expression": [ "match", "/s$/i", "@value" ], "operations": "(replace '/s$/i' 's' @value)", "operations_expression": [ "replace", "/s$/i", "s", "@value" ] }, { "conditions": "(match '/$/' @value)", "conditions_expression": [ "match", "/$/", "@value" ], "operations": "(replace '/$/' 's' @value)", "operations_expression": [ "replace", "/$/", "s", "@value" ] } ], "latin_name": "Plural", "description": "Converts singular form to plural", "application": "phrase" }, "ordinal": { "rules": [ { "description": "replace 1 with 'first'", "conditions": "(= 1 @value)", "conditions_expression": [ "=", 1, "@value" ], "operations": "(replace 1 'first' @value)", "operations_expression": [ "replace", 1, "first", "@value" ] }, { "description": "replace 2 with 'second'", "conditions": "(= 2 @value)", "conditions_expression": [ "=", 2, "@value" ], "operations": "(replace 2 'first' @value)", "operations_expression": [ "replace", 2, "first", "@value" ] }, { "description": "replace 3 with 'third'", "conditions": "(= 3 @value)", "conditions_expression": [ "=", 3, "@value" ], "operations": "(replace 3 'third' @value)", "operations_expression": [ "replace", 3, "third", "@value" ] } ], "latin_name": "Ordinal", "description": "The adjective form of the cardinal numbers", "application": "phrase" }, "ord": { "rules": [ { "description": "append 'st' if value ends in 1, but not in 11", "examples": "1, 21, 31, 41, 101, 121...", "conditions": "(&& (match '/1$/' @value) (! (match '/11$/' @value)))", "conditions_expression": [ "&&", [ "match", "/1$/", "@value" ], [ "!", [ "match", "/11$/", "@value" ] ] ], "operations": "(append 'st' @value)", "operations_expression": [ "append", "st", "@value" ] }, { "description": "append 'nd' if value ends in 2, but not in 12", "examples": "2, 22, 32, 42, 102, 122...", "conditions": "(&& (match '/2$/' @value) (! (match '/12$/' @value)))", "conditions_expression": [ "&&", [ "match", "/2$/", "@value" ], [ "!", [ "match", "/12$/", "@value" ] ] ], "operations": "(append 'nd' @value)", "operations_expression": [ "append", "nd", "@value" ] }, { "description": "append 'nd' if value ends in 3, but not in 13", "examples": "3, 23, 33, 43, 103, 123...", "conditions": "(&& (match '/3$/' @value) (! (match '/13$/' @value)))", "conditions_expression": [ "&&", [ "match", "/3$/", "@value" ], [ "!", [ "match", "/13$/", "@value" ] ] ], "operations": "(append 'rd' @value)", "operations_expression": [ "append", "rd", "@value" ] }, { "description": "append 'th' in all other cases", "examples": "0, 4, 5, 6, 7, 8, 9, 11, 12, 13, 111, 113...", "conditions": "(true)", "conditions_expression": [ "true" ], "operations": "(append 'th' @value)", "operations_expression": [ "append", "th", "@value" ] } ], "latin_name": "Ordinal", "description": "The adjective form of the cardinal numbers", "application": "phrase" }, "singular": { "rules": [ { "description": "Uncountable word", "conditions": "(in 'sheep,fish,series,species,money,rice,information,equipment' @value)", "conditions_expression": [ "in", "sheep,fish,series,species,money,rice,information,equipment", "@value" ], "operations": "@value", "operations_expression": "@value" }, { "description": "Irregular word", "conditions": "(= 'moves' @value)", "conditions_expression": [ "=", "moves", "@value" ], "operations": "(quote 'move')", "operations_expression": [ "quote", "move" ] }, { "description": "Irregular word", "conditions": "(= 'sexes' @value)", "conditions_expression": [ "=", "sexes", "@value" ], "operations": "(quote 'sex')", "operations_expression": [ "quote", "sex" ] }, { "description": "Irregular word", "conditions": "(= 'children' @value)", "conditions_expression": [ "=", "children", "@value" ], "operations": "(quote 'child')", "operations_expression": [ "quote", "child" ] }, { "description": "Irregular word", "conditions": "(= 'people' @value)", "conditions_expression": [ "=", "people", "@value" ], "operations": "(quote 'person')", "operations_expression": [ "quote", "person" ] }, { "conditions": "(match '/(n)ews$/i' @value)", "conditions_expression": [ "match", "/(n)ews$/i", "@value" ], "operations": "(replace '/(n)ews$/i' '$1ews' @value)", "operations_expression": [ "replace", "/(n)ews$/i", "$1ews", "@value" ] }, { "conditions": "(match '/([ti])a$/i' @value)", "conditions_expression": [ "match", "/([ti])a$/i", "@value" ], "operations": "(replace '/([ti])a$/i' '$1um' @value)", "operations_expression": [ "replace", "/([ti])a$/i", "$1um", "@value" ] }, { "conditions": "(match '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i' @value)", "conditions_expression": [ "match", "/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i", "@value" ], "operations": "(replace '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i' '$1$2sis' @value)", "operations_expression": [ "replace", "/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i", "$1$2sis", "@value" ] }, { "conditions": "(match '/(^analy)ses$/i' @value)", "conditions_expression": [ "match", "/(^analy)ses$/i", "@value" ], "operations": "(replace '/(^analy)ses$/i' '$1sis' @value)", "operations_expression": [ "replace", "/(^analy)ses$/i", "$1sis", "@value" ] }, { "conditions": "(match '/([^f])ves$/i' @value)", "conditions_expression": [ "match", "/([^f])ves$/i", "@value" ], "operations": "(replace '/([^f])ves$/i' '$1fe' @value)", "operations_expression": [ "replace", "/([^f])ves$/i", "$1fe", "@value" ] }, { "conditions": "(match '/(hive)s$/i' @value)", "conditions_expression": [ "match", "/(hive)s$/i", "@value" ], "operations": "(replace '/(hive)s$/i' '$1' @value)", "operations_expression": [ "replace", "/(hive)s$/i", "$1", "@value" ] }, { "conditions": "(match '/(tive)s$/i' @value)", "conditions_expression": [ "match", "/(tive)s$/i", "@value" ], "operations": "(replace '/(tive)s$/i' '$1' @value)", "operations_expression": [ "replace", "/(tive)s$/i", "$1", "@value" ] }, { "conditions": "(match '/([lr])ves$/i' @value)", "conditions_expression": [ "match", "/([lr])ves$/i", "@value" ], "operations": "(replace '/([lr])ves$/i' '$1f' @value)", "operations_expression": [ "replace", "/([lr])ves$/i", "$1f", "@value" ] }, { "conditions": "(match '/([^aeiouy]|qu)ies$/i' @value)", "conditions_expression": [ "match", "/([^aeiouy]|qu)ies$/i", "@value" ], "operations": "(replace '/([^aeiouy]|qu)ies$/i' '$1y' @value)", "operations_expression": [ "replace", "/([^aeiouy]|qu)ies$/i", "$1y", "@value" ] }, { "conditions": "(match '/(s)eries$/i' @value)", "conditions_expression": [ "match", "/(s)eries$/i", "@value" ], "operations": "(replace '/(s)eries$/i' '$1eries' @value)", "operations_expression": [ "replace", "/(s)eries$/i", "$1eries", "@value" ] }, { "conditions": "(match '/(m)ovies$/i' @value)", "conditions_expression": [ "match", "/(m)ovies$/i", "@value" ], "operations": "(replace '/(m)ovies$/i' '$1ovie' @value)", "operations_expression": [ "replace", "/(m)ovies$/i", "$1ovie", "@value" ] }, { "conditions": "(match '/(x|ch|ss|sh)es$/i' @value)", "conditions_expression": [ "match", "/(x|ch|ss|sh)es$/i", "@value" ], "operations": "(replace '/(x|ch|ss|sh)es$/i' '$1' @value)", "operations_expression": [ "replace", "/(x|ch|ss|sh)es$/i", "$1", "@value" ] }, { "conditions": "(match '/([m|l])ice$/i' @value)", "conditions_expression": [ "match", "/([m|l])ice$/i", "@value" ], "operations": "(replace '/([m|l])ice$/i' '$1ouse' @value)", "operations_expression": [ "replace", "/([m|l])ice$/i", "$1ouse", "@value" ] }, { "conditions": "(match '/(bus)es$/i' @value)", "conditions_expression": [ "match", "/(bus)es$/i", "@value" ], "operations": "(replace '/(bus)es$/i' '$1' @value)", "operations_expression": [ "replace", "/(bus)es$/i", "$1", "@value" ] }, { "conditions": "(match '/(o)es$/i' @value)", "conditions_expression": [ "match", "/(o)es$/i", "@value" ], "operations": "(replace '/(o)es$/i' '$1' @value)", "operations_expression": [ "replace", "/(o)es$/i", "$1", "@value" ] }, { "conditions": "(match '/(shoe)s$/i' @value)", "conditions_expression": [ "match", "/(shoe)s$/i", "@value" ], "operations": "(replace '/(shoe)s$/i' '$1' @value)", "operations_expression": [ "replace", "/(shoe)s$/i", "$1", "@value" ] }, { "conditions": "(match '/(cris|ax|test)es$/i' @value)", "conditions_expression": [ "match", "/(cris|ax|test)es$/i", "@value" ], "operations": "(replace '/(cris|ax|test)es$/i' '$1is' @value)", "operations_expression": [ "replace", "/(cris|ax|test)es$/i", "$1is", "@value" ] }, { "conditions": "(match '/(octop|vir)i$/i' @value)", "conditions_expression": [ "match", "/(octop|vir)i$/i", "@value" ], "operations": "(replace '/(octop|vir)i$/i' '$1us' @value)", "operations_expression": [ "replace", "/(octop|vir)i$/i", "$1us", "@value" ] }, { "conditions": "(match '/(alias|status)es$/i' @value)", "conditions_expression": [ "match", "/(alias|status)es$/i", "@value" ], "operations": "(replace '/(alias|status)es$/i' '$1' @value)", "operations_expression": [ "replace", "/(alias|status)es$/i", "$1", "@value" ] }, { "conditions": "(match '/^(ox)en$/i' @value)", "conditions_expression": [ "match", "/^(ox)en$/i", "@value" ], "operations": "(replace '/^(ox)en$/i' '$1' @value)", "operations_expression": [ "replace", "/^(ox)en$/i", "$1", "@value" ] }, { "conditions": "(match '/(vert|ind)ices$/i' @value)", "conditions_expression": [ "match", "/(vert|ind)ices$/i", "@value" ], "operations": "(replace '/(vert|ind)ices$/i' '$1ex' @value)", "operations_expression": [ "replace", "/(vert|ind)ices$/i", "$1ex", "@value" ] }, { "conditions": "(match '/(matr)ices$/i' @value)", "conditions_expression": [ "match", "/(matr)ices$/i", "@value" ], "operations": "(replace '/(matr)ices$/i' '$1ix' @value)", "operations_expression": [ "replace", "/(matr)ices$/i", "$1ix", "@value" ] }, { "conditions": "(match '/(quiz)zes$/i' @value)", "conditions_expression": [ "match", "/(quiz)zes$/i", "@value" ], "operations": "(replace '/(quiz)zes$/i' '$1' @value)", "operations_expression": [ "replace", "/(quiz)zes$/i", "$1", "@value" ] }, { "conditions": "(match '/(us)es$/i' @value)", "conditions_expression": [ "match", "/(us)es$/i", "@value" ], "operations": "(replace '/(us)es$/i' '$1' @value)", "operations_expression": [ "replace", "/(us)es$/i", "$1", "@value" ] }, { "conditions": "(match '/s$/i' @value)", "conditions_expression": [ "match", "/s$/i", "@value" ], "operations": "(replace '/s$/i' '' @value)", "operations_expression": [ "replace", "/s$/i", "", "@value" ] } ], "latin_name": "Singular", "description": "Converts plural form to singular", "application": "phrase" }, "pos": { "rules": [ { "description": "if value ends in s, append '", "conditions": "(match '/s$/' @value)", "conditions_expression": [ "match", "/s$/", "@value" ], "operations": "(append \"'\" @value)", "operations_expression": [ "append", "'", "@value" ] }, { "description": "in all other cases, append 's", "conditions": "(true)", "conditions_expression": [ "true" ], "operations": "(append \"'s\" @value)", "operations_expression": [ "append", "'s", "@value" ] } ], "latin_name": "Possessive", "description": "Used to indicate possession (i.e., ownership). It is usually created by adding 's to the word", "application": "phrase" } }
}