1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /*
- This file is part of karl-marx.
- karl-marx is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- karl-marx is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
- You should have received a copy of the GNU Affero General Public License
- along with karl-marx. If not, see <https://www.gnu.org/licenses/>.
- */
- package org.congressodeiradicali.karlmarx
- import org.congressodeiradicali.karlmarx.Locales.Locale
- object LocalizableString extends Enumeration {
- type LocalizableString = Value
- val DONE = Value
- val BAN_UNAUTHORIZED, BAN_SUCCESSFUL, BAN_FAILED, BAN_FAILED_INVALID_USER, BAN_FAILED_BAN_ADMIN, BAN_FAILED_REPLY, KICK_UNAUTHORIZED = Value
- val NO_SUCH_PLUGIN, PLUGIN_ENABLED, PLUGIN_DISABLED = Value
- }
- object Locales {
- type Locale = Map[LocalizableString.Value, String]
- val ENGLISH_LOCALE: Locale = Map(
- (LocalizableString.DONE, "Done"),
- (LocalizableString.BAN_UNAUTHORIZED, "Only an administrator can ban users"),
- (LocalizableString.BAN_SUCCESSFUL, "User was banned successfully"),
- (LocalizableString.BAN_FAILED_INVALID_USER, "Cannot ban, invalid user"),
- (LocalizableString.BAN_FAILED_BAN_ADMIN, "Cannot ban an admin user"),
- (LocalizableString.BAN_FAILED_REPLY, "Please reply to a message to ban someone"),
- (LocalizableString.KICK_UNAUTHORIZED, "Only an administrator can kick users"),
- (LocalizableString.NO_SUCH_PLUGIN, "No such plugin"),
- (LocalizableString.PLUGIN_ENABLED, "Plugin enabled"),
- (LocalizableString.PLUGIN_DISABLED, "Plugin disabled")
- )
- val ITALIAN_LOCALE: Locale = Map(
- (LocalizableString.DONE, "Fatto"),
- (LocalizableString.BAN_UNAUTHORIZED, "Solo un amministratore può bannare gli utenti"),
- (LocalizableString.BAN_SUCCESSFUL, "Utente bannato con successo"),
- (LocalizableString.BAN_FAILED_INVALID_USER, "Impossibile bannare, utente non valido"),
- (LocalizableString.BAN_FAILED_BAN_ADMIN, "Non puoi bannare un admin"),
- (LocalizableString.BAN_FAILED_REPLY, "Rispondi a un messaggio per bannare qualcuno"),
- (LocalizableString.KICK_UNAUTHORIZED, "Solo un amministratore può kickare gli utenti"),
- (LocalizableString.NO_SUCH_PLUGIN, "Il plugin selezionato non esiste"),
- (LocalizableString.PLUGIN_ENABLED, "Plugin abilitato"),
- (LocalizableString.PLUGIN_DISABLED, "Plugin disabilitato")
- )
- }
- class Localizer(val localeName: String) {
- val currentLocale: Locale = localeName match {
- case "en_EN" => Locales.ENGLISH_LOCALE
- case "it_IT" => Locales.ITALIAN_LOCALE
- case _ => throw new RuntimeException(s"No such locale: $localeName")
- }
- def getString(name: LocalizableString.Value): String = {
- if (currentLocale.contains(name))
- currentLocale(name)
- else
- throw new RuntimeException(s"Locale does not implement LocalizableString $name")
- }
- }
|