Added/Updated Language Files

This commit is contained in:
jameslfc19 2020-07-29 20:13:20 +01:00
parent 79c3d36676
commit a819acd179
8 changed files with 170 additions and 51 deletions

View File

@ -84,7 +84,6 @@ public class ChestsPlusPlus extends JavaPlugin {
PLUGIN = this;
LangFileProperties.moveLangFiles(getFile());
LangFileProperties.createTemplateLangFile();
Settings.initConfig(this);
LangFileProperties.loadLangFile(Settings.getLangFileName());

View File

@ -1,25 +1,15 @@
package com.jamesdpeters.minecraft.chests.lang;
import com.jamesdpeters.minecraft.chests.ChestsPlusPlus;
import com.jamesdpeters.minecraft.chests.maventemplates.BuildConstants;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.configuration.serialization.SerializableAs;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.MessageFormat;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Properties;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
@ -48,7 +38,7 @@ public class LangFileProperties {
//Save the language file after reading to insert any missing values.
LanguageFile savedProperties = new LanguageFile();
serialize(savedProperties);
if(currentFile != null) saveLangFile(savedProperties,currentFile);
if(currentFile != null) savedProperties.store(currentFile);
} catch (IOException e) {
e.printStackTrace();
}
@ -75,23 +65,6 @@ public class LangFileProperties {
return properties;
}
/**
* This must be called before {@link #loadLangFile(String)} since @{@link Message} is static.
*/
public static void createTemplateLangFile() {
try {
LanguageFile properties = new LanguageFile();
serialize(properties);
properties.storeTemplate(getLangFile("template", true));
} catch (IOException ignored){
}
}
public static void saveLangFile(LanguageFile properties, File file) throws IOException {
properties.store(file);
}
private static File getLangFile(String fileName, boolean create) throws IOException {
File pluginDataFolder = ChestsPlusPlus.PLUGIN.getDataFolder();
File file = new File(pluginDataFolder, "lang/"+fileName+".properties");
@ -142,12 +115,12 @@ public class LangFileProperties {
try {
Path targetFolder = Paths.get(getClass().getClassLoader().getResource("").toURI());
File langSrcFolder = new File(targetFolder.getParent().getParent().toString());
File langSrcFile = new File(langSrcFolder, "src/main/resources/lang/english.properties");
File langTargetFile = new File(targetFolder.toString(), "lang/english.properties");
File langSrcFile = new File(langSrcFolder, "src/main/resources/lang/en_GB.properties");
File langTargetFile = new File(targetFolder.toString(), "lang/en_GB.properties");
LanguageFile properties = new LanguageFile();
serialize(properties);
saveLangFile(properties, langSrcFile);
saveLangFile(properties, langTargetFile);
properties.storeGenerated(langSrcFile);
properties.storeGenerated(langTargetFile);
LOGGER.info("Saved language file to: "+langSrcFile.getPath());
LOGGER.info("Saved language file to: "+langTargetFile.getPath());
} catch (Exception e) {

View File

@ -14,29 +14,26 @@ import java.util.Properties;
public class LanguageFile extends Properties {
public void store(File file) throws IOException {
store0(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8)),false);
store0(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8)), false);
}
public void storeTemplate(File file) throws IOException {
store0(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8)),true);
public void storeGenerated(File file) throws IOException {
store0(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8)), true);
}
private void store0(BufferedWriter bw, boolean template)
private void store0(BufferedWriter bw, boolean generated)
throws IOException
{
writeComments(bw, "# Chests++ Language File (Version " + BuildConstants.VERSION + "))");
if(template){
if(generated) {
writeComments(bw, " Chests++ Language File (Version " + BuildConstants.VERSION + "))");
writeComments(bw,
"#########################################\n" +
"This is a template file for creating a new lang file!\n" +
"To create a new language file simply create a copy of this file and rename it to your desired choice for example 'español.yml'\n" +
"It should be located in the 'lang' folder, next to template.yml'\n" +
"Then in config.yml 'language-file: default' would be renamed to 'language-file: español'\n" +
"To help contribute to the plugin and provide new language files you can create a pull-request at https://github.com/JamesPeters98/ChestsPlusPlus or join our Discord!\n" +
"##########################################");
} else {
writeComments(bw, "# NOTE: This file gets replaced when the plugin launches! If you want to make modifications create a copy first!");
" NOTE: This file gets replaced when the plugin launches! If you want to make modifications create a copy first!\n" +
" To create a new language file simply create a copy of this file and rename it to your desired choice for example 'en_US.properties'\n" +
" It should be located in the 'lang' folder\n" +
" Then in config.yml 'language-file: default' would be renamed to 'language-file: en_US'\n" +
" To help contribute to the plugin and provide new language files you can create a pull-request at https://github.com/JamesPeters98/ChestsPlusPlus or join our Discord https://discord.gg/YRs3mP5");
}
synchronized (this) {
for (Enumeration<?> e = keys(); e.hasMoreElements();) {
String key = (String)e.nextElement();

View File

@ -0,0 +1,52 @@
# Chests++ Sprachdatei - DE_de
# Achtung: Diese Datei wird ersetzt, wenn das Plug-in startet! Wenn du es anpassen möchtest, erstelle vorher eine Kopie!
# Um eine neue Sprachdatei zu erstellen, mach eine Kopie von dieser Datei und benenne sie nach deiner Wahl, etwa 'en_US.properties'
# Die Sprachdatei sollte sich anschließend im 'lang'-Ordner befinden
# Dann in config.yml würde 'language-file: default' in z.B 'language-file: en_US' umbennannt werden
# Um der Entwicklung des plug-ins beizutragen und neue Sprachdateien bereitzustellen kannst du einen pull-request auf https://github.com/JamesPeters98/ChestsPlusPlus erstellen oder unserem Discord-Server beitreten: https://discord.gg/YRs3mP5
STORAGE_REMOVED = {storage_type} wurde für {player_name} erfolgreich von der Gruppe {storage_group} entfernt
CANNOT_RENAME_GROUP_DOESNT_EXIST = Fehler beim umbenennen der Gruppe\! {storage_identifier} existiert nicht\!
LIST_MEMBERS_OF_GROUP = Mitglieder der {storage_type}-Gruppe {storage_identifier}\: {player_list}
SORT = Sortiermethode für {storage_identifier} wurde zu {sort_method} gesetzt
LIST_OF_CHESTLINK = Liste deiner ChestLinks\:
LIST_OF_AUTOCRAFTERS = Liste deiner AutoCraft-Stationen\:
OWNER_HAS_TOO_MANY_CHESTS = Eigentümer {player_name} hat die Obergrenze der erlaubten Gruppen überschritten\!
MUST_LOOK_AT_CRAFTING_TABLE = Du musst die Werkbank anschauen, mit der du AutoCraft verwenden möchtest\!
CHEST_HAD_OVERFLOW = Nicht alle Gegenstände der Truhe würden in den ChestLink passen\!
GROUP_DOESNT_EXIST = {storage_group} ist keine gültige zu Entfernende {storage_type}-Gruppe\!
INVALID_ID = Ungültige {storage_type} ID\! Darf keinen Doppelpunkt '\:' enthalten, es sei denn, du verweist auf die Gruppe eines anderen Spielers, der du angehörst.
UNABLE_TO_ADD_MEMBER_TO_ALL = Kann Spieler {player_name} nicht zu {storage_type} hinzufügen\!
REMOVED_MEMBER = Spieler {player_name} erfolgreich von {storage_type}-Gruppe {storage_identifier} entfernt
STORAGE_ADDED = {storage_type} erfolgreich zu Gruppe\: {storage_group} für {player_name} hinzugefügt
NO_ADDITIONAL_MEMBERS = Es gibt keine weiteren Mitglieder in dieser Gruppe\: {storage_identifier}
REMOVE_MEMBER_FROM_ALL = Spieler {player_name} erfolgreich von allen {storage_type}-Gruppen entfernt
CURRENT_MEMBERS = Derzeitige Mitglieder\: {player_list}
CANNOT_RENAME_GROUP_ALREADY_EXISTS = Fehler beim umbenennen der Gruppe\! {storage_identifier} existiert bereits\!
ADDED_MEMBER = Spieler {player_name} erfolgreich zur {storage_type}-Gruppe {storage_identifier} hinzugefügt
UNABLE_TO_REMOVE_MEMBER = Kann den Spieler {player_name} nicht von {storage_type} entfernen\! Wurde jener bereits entfernt?
INVALID_AUTOCRAFTER = Ungültiger AutoCrafter - Du musst ein Schild auf irgendeiner Seite der Werkbank platzieren, und sie darf nicht bereits Teil einer anderen Gruppe sein\!
NO_PERMISSION = Du hast keine Erlaubnis, dies zu tun\!
MUST_LOOK_AT_CHEST = Du musst die Kiste anschauen, die du verknüpfen möchtest\!
FOUND_UNLINKED_STORAGE = Dieser {storage_type} wurde nicht mit deinem system verknüpft\! Es wurde zur {storage_identifier} Gruppe hinzugefügt\!
INVALID_CHESTLINK = Ungültiger ChestLink - Du musst ein Schild auf der Vorderseite einer Truhe platzieren / Stelle sicher, dass genug Platz für ein Schild auf der Vorderseite vorhanden ist\!
ADDED_MEMBER_TO_ALL = {player_name} erfolgreich zu allen {storage_type}-Gruppen hinzugefügt
SET_PUBLICITY = Es gibt keine weiteren Spieler in der Gruppe {storage_identifier}
REMOVED_GROUP = Die Gruppe {storage_group} wurde erfolgeich von deinen {storage_type}s entfernt\!
MUST_HOLD_SIGN = Du musst ein Schild in der Hand halten, um dies zu tun
ALREADY_PART_OF_GROUP = Dieser {storage_type} ist bereits Teil einer Gruppe\!
COMMAND_CHESTLINK_LIST = Listet alle ChestLinks auf, die du besitzt
COMMAND_MEMBER = Mitglieder einer Gruppe hinzufügen, entfernen oder auflisten
COMMAND_AUTOCRAFT_LIST = Listet alle dir zu Eigen seienden AutoCraft-Gruppen auf
COMMAND_CHESTLINK_OPEN = Öffnet das Inventar einer ChestLink-Gruppe
COMMAND_AUTOCRAFT_OPEN = Öffnet die Werkbank einer AutoCraft-Gruppe
COMMAND_CHESTLINK_SETPUBLIC = Stellt einen ChestLink so ein, dass jeder darauf zugreifen kann.
COMMAND_CHESTLINK_RENAME = Benennt einen ChestLink um.
COMMAND_CHESTLINK_REMOVE = Löscht einen ChestLink und lässt dessen Inventar vor deine Füße fallen\!
COMMAND_CHESTLINK_MENU = Öffne das ChestLink-Menü, um alle Gruppen anzuzeigen\!
COMMAND_CHESTLINK_SORT = Legt eine Sortiermethode für den vorliegenden ChestLink fest.
COMMAND_AUTOCRAFT_ADD = Erstellen / hinzufügen einer Werkbank zu einer AutoCraft-Gruppe
COMMAND_CHESTLINK_ADD = Erstellen / hinzufügen einer Truhe zu einer ChestLink Gruppe
COMMAND_HELP = Liste aller Befehle und ihrer Verwendung
COMMAND_AUTOCRAFT_RENAME = Umbenennen einer AutoCraft-Gruppe
COMMAND_AUTOCRAFT_REMOVE = Löscht eine AutoCraft-Gruppe und lässt alle Werkbanken fallen
COMMAND_AUTOCRAFT_SETPUBLIC = Stellt eine AutoCraft Gruppe so ein, dass jeder darauf zugreifen kann.

View File

@ -1,5 +1,9 @@
## Chests++ Language File (Version 2.2.1-Release))
## NOTE: This file gets replaced when the plugin launches! If you want to make modifications create a copy first!
# Chests++ Language File (Version 2.3-Dev))
# NOTE: This file gets replaced when the plugin launches! If you want to make modifications create a copy first!
# To create a new language file simply create a copy of this file and rename it to your desired choice for example 'en_US.properties'
# It should be located in the 'lang' folder
# Then in config.yml 'language-file: default' would be renamed to 'language-file: en_US'
# To help contribute to the plugin and provide new language files you can create a pull-request at https://github.com/JamesPeters98/ChestsPlusPlus or join our Discord https://discord.gg/YRs3mP5
COMMAND_CHESTLINK_LIST=Lists all ChestLinks that you own\!
COMMAND_MEMBER=Add, remove or list members of a group
COMMAND_AUTOCRAFT_LIST=Lists all AutoCraft groups that you own\!

View File

@ -0,0 +1,46 @@
STORAGE_REMOVED = {storage_type} Eliminado correctamente del grupo\: {storage_group} por {player_name}
CANNOT_RENAME_GROUP_DOESNT_EXIST = Error al renombrar el grupo\! {storage_identifier} no existe\!
LIST_MEMBERS_OF_GROUP = Los miembros de {storage_type} del grupo\: {storage_identifier}\: {player_list}
SORT = El método de ordenamiento para {storage_identifier} está puesto como {sort_method}
LIST_OF_CHESTLINK = Lista de tus ChestLinks\:
LIST_OF_AUTOCRAFTERS = Lista de tus Estaciones de AutoCraft
OWNER_HAS_TOO_MANY_CHESTS = Dueño\: {player_name} ha alcanzado el límite de grupos permitidos\!
MUST_LOOK_AT_CRAFTING_TABLE = Debes mirar una Mesa de Trabajo para crear un AutoCraft\!
CHEST_HAD_OVERFLOW = Los items del cofre podrían no entrar en el ChestLink\!
GROUP_DOESNT_EXIST = {storage_group} no es un grupo válido {storage_type} para eliminar\!
INVALID_ID = ID de {storage_type} no válido\! No puede contener dos puntos '\:' a menos que estes referenciando otro grupo de jugadores donde eres miembro
UNABLE_TO_ADD_MEMBER_TO_ALL = Incapaz de añadir al jugador {player_name} a {storage_type}\!
REMOVED_MEMBER = {player_name} Eliminado correctamente de {storage_type} grupo\: {storage_identifier}
STORAGE_ADDED = {storage_type} Agregado correctamente al grupo\: {storage_group} por {player_name}
NO_ADDITIONAL_MEMBERS = No hay miembros adicionales en el grupo\: {storage_identifier}
REMOVE_MEMBER_FROM_ALL = {player_name} Eliminado correctamente de todo el grupo de {storage_type}
CURRENT_MEMBERS = Miembros Actuales\: {player_list}
CANNOT_RENAME_GROUP_ALREADY_EXISTS = Error al renombrar el grupo\! {storage_identifier} ya existe\!
ADDED_MEMBER = {player_name} Agregado correctamente a {storage_type} del grupo {storage_identifier}
UNABLE_TO_REMOVE_MEMBER = Incapaz de eliminar al jugador {player_name} de {storage_type}\! Puede que ya este eliminado?
INVALID_AUTOCRAFTER = AutoCrafter Inválido - Debes colocar un cartel en cualquier lado de la Mesa de Trabajo y no debe estar separado de un grupo\!
NO_PERMISSION = No tienes permiso para hacer esto\!
MUST_LOOK_AT_CHEST = Debes mirar el Cofre que deseas para crear un ChestLink\!
FOUND_UNLINKED_STORAGE = Este {storage_type} no estaba enlazado a tu sistema\! Ha sido agregado en el grupo {storage_identifier}
INVALID_CHESTLINK = ChestLink Inválido - Debes colocar un cartel al frente del Cofre / Asegúrate de que hay un espacio frente al cofre\!
ADDED_MEMBER_TO_ALL = {player_name} Agregado correctamente a todos los grupos de {storage_type}
SET_PUBLICITY = No hay miembros adicionales en el grupo\: {storage_identifier}
REMOVED_GROUP = Grupo\: {storage_group} Eliminado correctamente de tus {storage_type}\!
MUST_HOLD_SIGN = Debes tener un cartel a la mano para hacer esto\!
ALREADY_PART_OF_GROUP = Este {storage_type} ya es parte de un grupo\!
COMMAND_CHESTLINK_LIST = Lista de todos los ChestLinks que posees\!
COMMAND_MEMBER = Agrega, elimina o muestra una lista de miembros de un grupo.
COMMAND_AUTOCRAFT_LIST = Lista de todos los grupos AutoCraft que posees\!
COMMAND_CHESTLINK_OPEN = Abre el inventario de un grupo de ChestLink.
COMMAND_AUTOCRAFT_OPEN = Abre la mesa de trabajo de un grupo de AutoCraft.
COMMAND_CHESTLINK_SETPUBLIC = Configura un ChestLink para que sea accesible para todos.
COMMAND_CHESTLINK_RENAME = Renombra un ChestLink
COMMAND_CHESTLINK_REMOVE = Elimina un ChestLink y suelta su inventario a tus pies\!
COMMAND_CHESTLINK_MENU = Abre el menu de ChestLink para mostrar todos los grupos\!
COMMAND_CHESTLINK_SORT = Establecer una opción de ordenamiento para un ChestLink.
COMMAND_AUTOCRAFT_ADD = Crea/agregar una Mesa de Trabajo a un grupo de AutoCraft
COMMAND_CHESTLINK_ADD = Crea/agrega un cofre a un grupo de ChestLink
COMMAND_HELP = Lista de comandos y sus usos\!
COMMAND_AUTOCRAFT_RENAME = Renombrar un grupo de AutoCraft
COMMAND_AUTOCRAFT_REMOVE = Elimina un grupo de AutoCraft y suelta todas las Mesas de Trabajos\!
COMMAND_AUTOCRAFT_SETPUBLIC = Configura un grupo AutoCraft para que sea accesibles para todos.

View File

@ -0,0 +1,48 @@
# Chests++ Magyar - hu_HU
# Megjegyzés: Ez a fájl felülíródik minden alkalommal amikor a plugin elindul. Ha módosítani szeretnél a fájl tartalmán csinálj egy másolatot egy másik névvel!
STORAGE_REMOVED = {storage_type} sikeresen eltávolítva a {storage_group} csoportból {player_name} játékosnak.
CANNOT_RENAME_GROUP_DOESNT_EXIST = Hiba az átnevezés közben\!\n{storage_identifier} nem létezik\!
LIST_MEMBERS_OF_GROUP = {storage_type} tipusú {storage_identifier} nevű csoport tagjai\: {player_list}
SORT = Szelektálási forma a {storage_identifier} csoport számára beállítva\: {sort_method}
LIST_OF_CHESTLINK = A ChestLink-eid listája\:
LIST_OF_AUTOCRAFTERS = Az AutoCraft állomásaid listája\:
OWNER_HAS_TOO_MANY_CHESTS = {player_name} elérte a maximális csoportmennyiséget\!
MUST_LOOK_AT_CRAFTING_TABLE = Rá kell nézned arra a barkácsasztalra amiből AutoCraft állomást szeretnél készíteni\!
CHEST_HAD_OVERFLOW = A láda tartalma nem fért bele ebbe a ChestLink-be\!
GROUP_DOESNT_EXIST = {storage_group} nem egy létező {storage_type}. Nem lehet eltávolítani\!
INVALID_ID = Hibás {storage_type} név\! A név nem tartalmazhat kettőspontot(\:)\!
UNABLE_TO_ADD_MEMBER_TO_ALL = Nem lehet hozzáadni {player_name} játékost a következő tipushoz\: {storage_type}\!
REMOVED_MEMBER = {player_name} sikeresen eltávolítva a/az {storage_type} tipusú {storage_identifier} nevű csoportból.
STORAGE_ADDED = {player_name} sikeresen hozzáadva a/az {storage_type} tipusú {storage_group} nevű csoporthoz.
NO_ADDITIONAL_MEMBERS = {storage_identifier} nevű csoportnak nincsenek további tagjai.
REMOVE_MEMBER_FROM_ALL = {player_name} sikeresen eltávolítva minden {storage_type} tipusú csoportból.
CURRENT_MEMBERS = Jelenlegi tagok\: {player_list}
CANNOT_RENAME_GROUP_ALREADY_EXISTS = Hiba a csoport átnevezésekor\! {storage_identifier} nevű csoport már létezik\!
ADDED_MEMBER = {player_name} sikeresen hozzáadva a/az {storage_type} tipusú {storage_identifier} nevű csoporthoz.
UNABLE_TO_REMOVE_MEMBER = {storage_type} tipusú csoportból nem lehet eltávolítani {player_name} játékost\! Már eltávolítottad?
INVALID_AUTOCRAFTER = Nem érvényes AutoCrafter\! A táblát muszáj egy barkácsasztal bármely oldalára tenned és a barkácsasztalon nem lehet másik csoport\!
NO_PERMISSION = Nincs jogod\!
MUST_LOOK_AT_CHEST = Muszáj a ládára nézned hogyha hozzá akarod adni egy ChestLink-hez\!
FOUND_UNLINKED_STORAGE = Ez a {storage_type} tipusú elem nem volt regisztrálva. Regisztrálva lett a {storage_identifier} nevű csoporthoz\!
INVALID_CHESTLINK = Nem érvényes ChestLink\! Muszáj a láda elejére raknod a táblát vagy bizonyosodj meg hogy a láda előtt van hely\!
ADDED_MEMBER_TO_ALL = {player_name} sikeresen hozzáadva az összes {storage_type} tipusú csoporthoz\!
SET_PUBLICITY = Nincs több tagja az adott csoportnak\: {storage_identifier}
REMOVED_GROUP = {storage_type} tipusú {storage_identifier} nevű csoportból sikeresen eltávolítva\!
MUST_HOLD_SIGN = Muszáj a kezedben egy táblát fognod hogy ezt megtehesd\!
ALREADY_PART_OF_GROUP = Ez a {storage_type} tipusú elem már egy csoport tagja\!
COMMAND_CHESTLINK_LIST = Kilistázza az összes ChestLink csoportodat.
COMMAND_MEMBER = Hozzáad, elvesz vagy kilistázza egy csoport tagjait.
COMMAND_AUTOCRAFT_LIST = Kilistázza az összes AutoCraft csoportodat.
COMMAND_CHESTLINK_OPEN = Megnyitja a tartalmát egy ChestLink csoportodnak.
COMMAND_AUTOCRAFT_OPEN = Megnyitja egy AutoCraft barkácsolási menüjét.
COMMAND_CHESTLINK_SETPUBLIC = Mindenki számára elérhetővé teszi a ChestLink csoportodat.
COMMAND_CHESTLINK_RENAME = Átnevezi a ChestLink csoportodat.
COMMAND_CHESTLINK_REMOVE = Kitöröl egy ChestLink csoportot és a tartalmát magad alá dobja.
COMMAND_CHESTLINK_MENU = Megynitja a ChestLink menüt ahol eléred az összes csoportodat.
COMMAND_CHESTLINK_SORT = Beálítja a szelektáló opciót a megadott ChestLink csoportodnak.
COMMAND_AUTOCRAFT_ADD = Létrehoz vagy hozzáad egy AutoCraft tipusú csoportot.
COMMAND_CHESTLINK_ADD = Létrehoz vagy hozzáad egy ChestLink tipusú csoportot.
COMMAND_HELP = A Parancsok és a leírásuk kilistázása.
COMMAND_AUTOCRAFT_RENAME = Átnevez egy AutoCraft csoportot.
COMMAND_AUTOCRAFT_REMOVE = Kitöröl egy AutoCraft csoportot és a lábadhoz dobja a barkácsasztalokat.
COMMAND_AUTOCRAFT_SETPUBLIC = Mindenki számára elérhetővé teszi az AutoCraft csoportodat.

View File

@ -1,4 +1,4 @@
# Chests++ Language File (Version 2.2.1-Release)
# Chests++ Language File
# NOTE: This file gets replaced when the plugin launches! If you want to make modifications create a copy first!
STORAGE_REMOVED = U hebt succesvol {storage_type} van groep {storage_group} verwijderd voor {player_name}.
CANNOT_RENAME_GROUP_DOESNT_EXIST = Er is iets misgelopen, {storage_identifier} bestaat niet\!