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