Du könntest dem Sitestore-Root entsprechende SEO-URLs zuweisen. Das geht aktuell nicht per GUI sondern nur über die API. D.h. Du müsstest mit einem kleinen Menü-Skript für die jeweiligen Sprachen die SEO-URLs setzen.
import de.espirit.common.base.Logging;
import de.espirit.firstspirit.access.GuiScriptContext;
import de.espirit.firstspirit.access.Language;
import de.espirit.firstspirit.access.project.TemplateSet;
import de.espirit.firstspirit.access.store.Store;
import de.espirit.firstspirit.access.store.globalstore.GlobalStoreRoot;
import de.espirit.firstspirit.access.store.globalstore.URLProperties;
import de.espirit.firstspirit.access.store.sitestore.SiteStoreRoot;
import de.espirit.firstspirit.agency.LanguageAgent;
import de.espirit.firstspirit.agency.ProjectAgent;
import de.espirit.firstspirit.agency.SpecialistsBroker;
import de.espirit.firstspirit.agency.StoreAgent;
import java.util.List;
import java.util.Locale;
StoreAgent storeAgent = context.requireSpecialist(StoreAgent.TYPE);
List<Language> languages = context.requireSpecialist(LanguageAgent.TYPE).getLanguages();
GlobalStoreRoot globalStoreRoot = (GlobalStoreRoot) storeAgent.getStore(Store.Type.GLOBALSTORE);
URLProperties urlProperties = globalStoreRoot.getUrlProperties();
SiteStoreRoot siteStoreRoot = (SiteStoreRoot) storeAgent.getStore(Store.Type.SITESTORE);
//only use first template set here
TemplateSet templateSet = context.requireSpecialist(ProjectAgent.TYPE).getTemplateSets().get(0);
try {
urlProperties.setLock(true);
for (Language language : languages) {
urlProperties.setStoredUrl(
'/'+language.getAbbreviation().toLowerCase(Locale.ENGLISH),
siteStoreRoot,
language,
templateSet
);
}
urlProperties.save();
urlProperties.setLock(false);
} catch (Exception e) {
context.logError("Could not modify URL settings");
}
Es müssten natürlich (vorher!) einmal alle URLs zurückgesetzt werden.
Dadurch dass hier letztlich "echte verschiedene" URLs erzeugt werden, sollte es auch nicht zu Konflikten und somit zu den numerischen Ergänzungen kommen.