introduce configuration presets
This commit is contained in:
parent
31ad2e3464
commit
289f168e88
@ -0,0 +1,79 @@
|
|||||||
|
package de.marhali.easyi18n.settings.presets;
|
||||||
|
|
||||||
|
import de.marhali.easyi18n.io.parser.ParserStrategyType;
|
||||||
|
import de.marhali.easyi18n.model.FolderStrategyType;
|
||||||
|
import de.marhali.easyi18n.settings.ProjectSettings;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default preset. Used if none has been defined.
|
||||||
|
* @author marhali
|
||||||
|
*/
|
||||||
|
public class DefaultPreset implements ProjectSettings {
|
||||||
|
@Override
|
||||||
|
public String getLocalesDirectory() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull FolderStrategyType getFolderStrategy() {
|
||||||
|
return FolderStrategyType.SINGLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull ParserStrategyType getParserStrategy() {
|
||||||
|
return ParserStrategyType.JSON;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getFilePattern() {
|
||||||
|
return "*.*";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSorting() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getNamespaceDelimiter() {
|
||||||
|
return ":";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getSectionDelimiter() {
|
||||||
|
return ".";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getContextDelimiter() {
|
||||||
|
return "_";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPluralDelimiter() {
|
||||||
|
return "_";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable String getDefaultNamespace() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getPreviewLocale() {
|
||||||
|
return "en";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isNestedKeys() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAssistance() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
package de.marhali.easyi18n.settings.presets;
|
||||||
|
|
||||||
|
import de.marhali.easyi18n.settings.ProjectSettings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enumeration of all available configuration presets.
|
||||||
|
* Every preset needs to be registered here to be properly recognized.
|
||||||
|
* @author marhali
|
||||||
|
*/
|
||||||
|
public enum Preset {
|
||||||
|
DEFAULT(DefaultPreset.class),
|
||||||
|
VUE_I18N(VueI18nPreset.class),
|
||||||
|
REACT_I18NEXT(ReactI18NextPreset.class);
|
||||||
|
|
||||||
|
private final Class<? extends ProjectSettings> clazz;
|
||||||
|
|
||||||
|
Preset(Class<? extends ProjectSettings> clazz) {
|
||||||
|
this.clazz = clazz;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProjectSettings config() {
|
||||||
|
try {
|
||||||
|
return this.clazz.getDeclaredConstructor().newInstance();
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return super.name().toLowerCase();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
package de.marhali.easyi18n.settings.presets;
|
||||||
|
|
||||||
|
import de.marhali.easyi18n.io.parser.ParserStrategyType;
|
||||||
|
import de.marhali.easyi18n.model.FolderStrategyType;
|
||||||
|
import de.marhali.easyi18n.settings.ProjectSettings;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Preset for React - i18n-next
|
||||||
|
* @author marhali
|
||||||
|
*/
|
||||||
|
public class ReactI18NextPreset implements ProjectSettings {
|
||||||
|
@Override
|
||||||
|
public @Nullable String getLocalesDirectory() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull FolderStrategyType getFolderStrategy() {
|
||||||
|
return FolderStrategyType.MODULARIZED_NAMESPACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull ParserStrategyType getParserStrategy() {
|
||||||
|
return ParserStrategyType.JSON;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getFilePattern() {
|
||||||
|
return "*.json";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSorting() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable String getNamespaceDelimiter() {
|
||||||
|
return ":";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getSectionDelimiter() {
|
||||||
|
return ".";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable String getContextDelimiter() {
|
||||||
|
return "_";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable String getPluralDelimiter() {
|
||||||
|
return "_";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable String getDefaultNamespace() {
|
||||||
|
return "common";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getPreviewLocale() {
|
||||||
|
return "en";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isNestedKeys() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAssistance() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,78 @@
|
|||||||
|
package de.marhali.easyi18n.settings.presets;
|
||||||
|
|
||||||
|
import de.marhali.easyi18n.io.parser.ParserStrategyType;
|
||||||
|
import de.marhali.easyi18n.model.FolderStrategyType;
|
||||||
|
import de.marhali.easyi18n.settings.ProjectSettings;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Preset for Vue.js - vue-i18n
|
||||||
|
* @author marhali
|
||||||
|
*/
|
||||||
|
public class VueI18nPreset implements ProjectSettings {
|
||||||
|
@Override
|
||||||
|
public @Nullable String getLocalesDirectory() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull FolderStrategyType getFolderStrategy() {
|
||||||
|
return FolderStrategyType.SINGLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull ParserStrategyType getParserStrategy() {
|
||||||
|
return ParserStrategyType.JSON;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getFilePattern() {
|
||||||
|
return "*.json";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSorting() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable String getNamespaceDelimiter() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getSectionDelimiter() {
|
||||||
|
return ".";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable String getContextDelimiter() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable String getPluralDelimiter() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable String getDefaultNamespace() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getPreviewLocale() {
|
||||||
|
return "en";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isNestedKeys() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAssistance() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user