sourceapplocalesgrc.js

/* grc - Ἀρχαία ἑλληνική - Ancient Greek */

import customDateFormat from "../custom-date-format.js";

const dateFormatParts = {
	texts: {
		era: {
			long: ["πρὸ τῆς Γαλιλαίας Ἐποχῆς", "μετὰ τὴν Γαλιλαίαν Ἐποχήν"],
			short: ["π.Γ.Ε.", "μ.Γ.Ε."],
			narrow: ["π.", "μ."]
		},
		month: {
			long: [
				"Ἰανουαρίου",
				"Φεβρουαρίου",
				"Μαρτίου",
				"Ἀπριλίου",
				"Μαΐου",
				"Ἰουνίου",
				"Ἰουλαίου",
				"Αὐγούστου",
				"Σεπτεμβρίου",
				"Ὀκτωβρίου",
				"Νοεμβρίου",
				"Δεκεμβρίου"
			],
			short: [
				"Ἰαν.",
				"Φεβ.",
				"Μαρ.",
				"Ἀπρ.",
				"Μαΐ.",
				"Ἰουν.",
				"Ἰουλ.",
				"Αὐγ.",
				"Σεπ.",
				"Ὀκτ.",
				"Νοε.",
				"Δεκ."
			],
			narrow: ["Ι", "Φ", "Μ", "Α", "Μ", "Ι", "Ι", "Α", "Σ", "Ο", "Ν", "Δ"]
		},
		standaloneMonth: {
			long: [
				"Ἰανουάριος",
				"Φεβρουάριος",
				"Μάρτιος",
				"Ἀπρίλιος",
				"Μάϊος",
				"Ἰούνιος",
				"Ἰουλαῖος",
				"Αὔγουστος",
				"Σεπτέμβριος",
				"Ὀκτώβριος",
				"Νοέμβριος",
				"Δεκέμβριος"
			],
			short: [
				"Ἰαν.",
				"Φεβ.",
				"Μάρ.",
				"Ἀπρ.",
				"Μάϊ.",
				"Ἰούν.",
				"Ἰουλ.",
				"Αὔγ.",
				"Σεπ.",
				"Ὀκτ.",
				"Νοέ.",
				"Δεκ."
			],
			narrow: ["Ι", "Φ", "Μ", "Α", "Μ", "Ι", "Ι", "Α", "Σ", "Ο", "Ν", "Δ"]
		},
		weekday: {
			long: [
				"ἡμέρᾳ Ἡλίου",
				"ἡμέρᾳ Σελήνης",
				"ἡμέρᾳ Ἄρεως",
				"ἡμέρᾳ Ἑρμοῦ",
				"ἡμέρᾳ Διός",
				"ἡμέρᾳ Ἀφροδίτης",
				"ἡμέρᾳ Κρόνου"
			],
			short: [
				"ἡ.Ἡλ.",
				"ἡ.Σε.",
				"ἡ.Ἄρ.",
				"ἡ.Ἑρ.",
				"ἡ.Δι.",
				"ἡ.Ἀφ.",
				"ἡ.Κρ."
			],
			narrow: ["Η", "Σ", "Αρ", "Ε", "Δ", "Αφ", "Κ"]
		},
		hour12: ["ἕωθεν", "δείλης"]
	},
	joiner: {
		full: "{1}, {0}",
		long: "{1}, {0}",
		medium: "{1}, {0}",
		short: "{1}, {0}"
	},
	date: {
		G: "{G}",
		Gy: "{y} {G}",
		GyM: "{L} τοῦ {y} {G}",
		GyMd: "{d} {M} τοῦ {y} {G}",
		GyMdE: "{E}, {d} {M} τοῦ {y} {G}",
		y: "{y}",
		yM: "{L} τοῦ {y}",
		yMd: "{d} {M} τοῦ {y}",
		yMdE: "{E}, {d} {M} τοῦ {y}",
		M: "{L}",
		Md: "{d} {M}",
		MdE: "{E}, {d} {M}",
		d: "{d}",
		dE: "{E}, {d}"
	},
	time: {
		h: "{h}",
		hB: "{H} {B}",
		hv: "{h} ({v})",
		hBv: "{H} {B} ({v})",
		hm: "{h}{m}ʹ",
		hmB: "{H}{m}ʹ {B}",
		hmv: "{h}{m}ʹ ({v})",
		hmBv: "{H}{m}ʹ {B} ({v})",
		hms: "{h}{m}ʹ{s}ʹʹ",
		hmsB: "{H}{m}ʹ{s}ʹʹ {B}",
		hmsv: "{h}{m}ʹ{s}ʹʹ ({v})",
		hmsBv: "{H}ʹ{m}ʹ{s}ʹʹ {B} ({v})"
	}
};

const locale = grimm => {
	let help = {
		count: n => (n == 1 ? "one" : n == 2 ? "two" : "other"),
		num: n => grimm.enumerate(n, "greek")
	};
	help.CustomDate = customDateFormat(dateFormatParts, ["el"], {
		generic: { format: help.num },
		twoDigits: { format: help.num },
		twoDigitsDecimal: dp => ({ format: help.num })
	});

	return {
		meta: {
			id: "grc",
			code: "grc-GR",

			name: "Ἀρχαία ἑλληνική",
			sort: "archaea hellenice",
			flag: "gr/ancient",

			fallback: ["el", "en"],
			intlFallback: ["el-EL"]
		},

		help: help,

		pan: {
			indexLink: "Οἴκαδε",
			baseSiteName: "Ἡ Ὕλη τῶν Σατύρων 🍇",
			circa: x => `πέριξ ${x}`,
			dateSep: " / ",
			pageHistory: {
				added: date =>
					`Σελὶς προσετέθη τῷ τόπῳ:: ${grimm.date.dual("grc", date)}`,
				created: date =>
					`Σελὶς ἐκτίσθη: ${grimm.date.dual("grc", date)}`,
				published: date =>
					`Σελὶς πρῶτον ἐξεδόθη: ${grimm.date.dual("grc", date)}`,
				translated: date =>
					`Σελὶς μετεφράσθη: ${grimm.date.dual("grc", date)}`,
				updated: date =>
					`Σελὶς ἐκαινώθη: ${grimm.date.dual("grc", date)}`
			}
		},

		attic: {
			moons: ["☾", "ε.κ.ν.", ""],
			months: {
				long: [
					"Ἑκατομβαιῶνος",
					"Μεταγειτνιῶνος",
					"Βοηδρομιῶνος",
					"Πυανεψιῶνος",
					"Μαιμακτηριῶνος",
					"Ποσειδεῶνος",
					"Ποσειδεῶνος Βʹ",
					"Γαμηλιῶνος",
					"Ἀνθεστηριῶνος",
					"Ἐλαφηβολιῶνος",
					"Μουνυχιῶνος",
					"Θαργηλιῶνος",
					"Σκιροφοριῶνος"
				],
				short: [
					"Ἐκα.",
					"Μετ.",
					"Βοη.",
					"Πυα.",
					"Μαι.",
					"Ποσ.",
					"Ποσ. βʹ",
					"Γαμ.",
					"Ἀνθ.",
					"Ἐλα.",
					"Μου.",
					"Θαρ.",
					"Σκι."
				]
			},
			template: {
				long: (ol, y, m, d) => `${d} ${m} ${ol}.${y}`,
				short: (ol, y, m, d) => `${d} ${m} ${ol}.${y}`
			}
		},
		comments: {
			header: n =>
				`${help.num(n)} ${
					{ one: "σχόλιον", two: "σχόλια", other: "σχόλια" }[
						help.count(n)
					]
				}`,
			headerNone: "Συγγράφε σχόλιον",
			saysBefore: "Ἦ δὲ ",
			saysAfter: "…",
			reply: "Ἀποκρίνειν τῷδε τῷ σχολίῳ",
			name: "Ὄνομα",
			namePlaceholder: "Οὔτις",
			email: "Ἠλεκτροταχυδρομικὴ ὑφήγησις (<i>Πάγη τῷ κακῷ· εἰ ἀληθινὸς ἄνθρωπος ᾖς, μὴ ἐνθάδε γράφε!</i>)",
			website: "Ἱστότοπος",
			websitePlaceholder: "https://outis.gr",
			tripcode: "Σύνθημα",
			optional: " (<i>ἐθελούσιον</i>)",
			textarea: "Συγγράφε τὸ σχόλιον",
			textareaPlaceholder: "Ἄνδρα μοι ἔννεπε, Μοῦσα, πολύτροπον…",
			textareaRules:
				"Εὔνους ἴσθι, εἰ δοκεῖ. Τὸ σχόλιον κινεῖται χάριν τῆς ὀρθογραφίας· εἰμὶ γὰρ μικρολόγος. Ὑπομνήματα: <code><b>*στερεά*</b></code>, <code><i>/πλάγια/</i></code>, <code>[//satyrs.eu σύνδεσμοι]</code>… <a href='/comments'>→ Πλεῖον</a>",
			select: "(Ἀντὶ τοῦ κακοῦ) Τίνα πλανήτην οἰκεῖς;",
			selectDefault: "Ἐξαίρει…",
			selectBellerophon: "Βελλεροφόντης",
			selectEarth: "Γῆ",
			selectMercury: "Ἑρμῆς",
			selectOmicron: "Λάβδα-εʹ",
			selectVulcan: "Ἢφαιστος",
			submit: "Ἀποφέρειν",
			confirmed: "Ἀπενήνεκται μὴν τὸ σὸν σχόλιον!",
			closed: "Οὐκέτι λαμβάνεται σχόλια τῷδε τῷ γράμματι."
		},

		codex: {
			siteName: "Ὁ Τόμος τῶν Σατύρων",
			codexIndex: "Οἴκαδε"
		},

		garden: {
			siteName: "Ὁ Κῆπος 🌿",
			header: {
				title: "Ὁ Κῆπος",
				subtitle: "Ἀγγελίαι ἐκ <i>τῆς Ὕλης τῶν Σατύρων</i>"
			},
			post: {
				untitled: "Ἀνώνυμον γραμμα",
				taggedAs: tags => `Πιττακιχθὲν: ${tags.join(", ")}`,
				edit: "Μετατιθέναι"
			}
		},

		planter: {
			editor: {
				creating: "Κτίζων νέον γράμμα",
				editing: title => `Μετατιθεὶς γράμμα «${title}»`,
				translating: title => `Μεταφράζων γράμμα «${title}»`,
				savePost: "Σῴζειν",
				publishPost: "Ἐκδίδωμι",
				retractPost: "Ἀνατίθημι",
				titlePlaceholder: "Ὄνομα",
				contentsPlaceholder: "Γράφ’ ἐνθάδε σὸν γράμμα…",
				slug: "Πρόρρησις",
				pageCreated: "Ἐξεδόθη (<span class='all-sc'>UTC</span>)",
				lang: "Γλῶττα",
				translates: "Μεταφρασθείσα",
				format: "Εἶδος γράμματος",
				formatArticle: "Έπιστολή",
				formatNote: "Ῥῆμα",
				tags: "Πιττάκια",
				commentStatus: "Ἐᾶν σχόλια",
				markup: "Γλῶττα ὑπομνήσασα",
				markupRubric: "Rubric",
				markupHtml: "HTML",
				thumbnail: "Μικρογραφία",
				thumbnailAlt: "Ταύτης ἐξήγησις",
				mediaNewFile: "Νέα χρῆμα",
				tabWrite: "Γράφειν",
				tabTag: "Πιττάκια",
				tabMedia: "Χρήματα"
			},
			message: {
				postSaved: time =>
					`Γράμμα σέσῳσται ${grimm.date.ce("grc", time, 6)}.`,
				postPublished: url =>
					`Γράμμα ἐκδέδοται — <a href="${url}">κροῦ’ αὐτοῦ ἵν’ ὁρᾷς</a>!`,
				slugTaken: "Ἤδη χρῆται ταύτῃ προρρήσει!",
				missingThumbnailAltText:
					"Παρακαλῶ, ἔπαγέ τιν’ ἐξήγησιν τῇ μικρογραφίᾳ.",
				alreadyTranslated: (post, lang) =>
					`The post at <span class="mono">${post}</span> has already been translated into ${grimm.translate(
						"grc",
						`loc.language.${lang}`
					)}.`,
				savedPreferences: "Preferences successfully saved!"
			}
		}
	};
};

export default locale;