diff --git a/src/data.ts b/src/data.ts new file mode 100644 index 0000000..182eadf --- /dev/null +++ b/src/data.ts @@ -0,0 +1,82 @@ +export const locales = { + Afrikaans: "Hallo, wêreld!", + Albanian: "Pershëndetje Botë", + Arabic: "أهلاً بالعالم (Ahlan bil 'Alam)", + Armenian: "Բարե՛ւ, աշխարհ։ (barev ash'kharh)", + Azeri: "Salam Dünya", + Czech: "Ahoj Světe!", + BasqueEuskara: "Kaixo mundua!", + Belarusian: "Прывітанне свет (Pryvitannie sviet)", + Bemba: "Shani Mwechalo!", + Bengali: "Shagatam Prithivi!", + Bosnian: "Zdravo Svijete!", + Bulgarian: "Здравей, свят! (Zdrav'ei svi'at)", + Cambodian: "ជំរាបសួរ ពិភពលោក (chomreabsuor piphoplok)", + Catalan: "Hola món!", + Chinese: "你好世界 (nǐ hǎo shì jiè)", + Cherokee: "ᎣᏏᏲ ᎡᎶᎯ (O-si-yo E-lo-hi)", + ChinookWawa: "Klahowya Hayas Klaska", + Croatian: "Bok Svijete!", + Danish: "Hej, Verden!", + Dutch: "Hallo, wereld!", + English: "Hello World!", + Esperanto: "Saluton mondo!", + Estonian: "Tere maailm!", + Finnish: "Hei maailma!", + French: "Salut le Monde!", + Frisian: "Hallo, wrâld!", + Galician: "Ola mundo!", + German: "Hallo Welt!", + Greek: "Γεια σου κόσμε! (Geia soy kosme)", + Hawaiian: "Aloha Honua", + Hebrew: "Shalom Olam", + Hindi: "नमस्ते दुनिया (namaste duniya)", + Hmong: "Nyob zoo ntiaj teb.", + Hungarian: "Helló világ!", + Icelandic: "Halló heimur!", + Igbo: "Ndewo Ụwa", + Indonesian: "Halo Dunia!", + Irish: "Dia dhaoibh, a dhomhain!", + Italian: "Ciao Mondo!", + Japanese: "こんにちは、 世界! (konnichiwa sekai)", + Kannada: "ಹಲೋ ವರ್ಲ್ಡ್ (Halō varlḍ)", + Kiswahili: "Habari dunia!", + Kikuyu: "Niatia thi!", + Klingon: "nuqneH", + Korean: "반갑다 세상아 (bangabda, sesangah)", + Lao: "ສະບາຍດີ,ໂລກ (sabaidi olk)", + Latin: "AVE MVNDE (ave munde)", + Latvian: "Sveika, Pasaule!", + Lithuanian: "Sveikas, Pasauli", + Lojban: "coi li terdi", + Luxembourgish: "Moien Welt!", + Malagasy: "Manao ahoana ry tany!", + Malayalam: "Namaskaram, lokame", + Maltese: "Merhba lid-dinja", + Norwegian: "Hallo verden!", + Persian: "!سلام دنیا (Salaam Donyaa!)", + Polish: "Witaj świecie!", + Portuguese: "Olá, mundo!", + Punjabi: "ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ ਦੁਨਿਆ (Sati srī akāla duni'ā)", + Romanian: "Salut lume!", + Russian: "Здравствуй, мир! (Zdra'vstvuj mi'r)", + Scots: "Gaelic Halò, a Shaoghail!", + Serbian: "Zdravo Svete!", + Slovak: "Ahoj, svet!", + Slovenian: "Pozdravljen svet!", + Spanish: "¡Hola mundo!", + Swedish: "Hallå världen!", + Tagalog: "Kamusta mundo!", + Tamil: "ஹலோ உலகம் (Halō ulakam)", + Telugu: "హలో వరల్డ్ (Halō varalḍ)", + Thai: "สวัสดีโลก! (sawadee lok)", + Turkish: "Merhaba Dünya!", + Ukrainian: "Привiт, свiте! (Pryvi't svi'te)", + Urdu: "ہیلو دنیا والو", + Vietnamese: "Xin chào thế giới", + Welsh: "S'mae byd!", + Yiddish: "העלא וועלט (hela velt)", + Zulu: "Sawubona Mhlaba", +}; + +export const localesSize = Object.keys(locales).length; diff --git a/src/index.test.ts b/src/index.test.ts index 5816e06..2e81467 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -4,6 +4,7 @@ import { } from "https://deno.land/std@0.87.0/testing/asserts.ts"; import { sayHello } from "./index.ts"; import { ValidationError } from "./validation.ts"; +import { localesSize } from "./data.ts"; Deno.test("Hello test", () => { const actual = sayHello(); @@ -25,6 +26,10 @@ Deno.test("Hello fails for non strictly positive values", () => { }); Deno.test("Hello fails for too large values", () => { - const id = 666; - assertThrows(() => sayHello(id), ValidationError, "Invalid index: 666"); + const id = localesSize; + assertThrows( + () => sayHello(id), + ValidationError, + `Invalid index: ${localesSize}`, + ); }); diff --git a/src/index.ts b/src/index.ts index 9cfe9ce..e81bc88 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,5 @@ import { ValidationError } from "./validation.ts"; +import { localesSize } from "./data.ts"; /** * Display the iconic Hello, World @@ -10,4 +11,4 @@ export const sayHello = (id?: number) => { return (id === 5) ? "Bonjour le monde" : "Hello, World!"; }; -const idInValidRange = (id: number) => id < 1 || id > 100; +const idInValidRange = (id: number) => id < 1 || id >= localesSize;