Bug 306576 Externalization/translation of strings in xmi files
Currently our e4xmi files have various hard-coded English strings that are presented to the user (in particular the "label" attributes). Is there some mechanism already defined for externalization/translation of NLS strings from these xmi files? If not, we need to define one. Creating a new xmi file from scratch for each language won't scale, and won't allow switching languages after the product is installed.
bundles/org.eclipse.e4.ui.model.workbench/src/org/eclipse/e4/ui/model/application/ui/advanced/util/AdvancedSwitch.java
* <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	protected T1 doSwitch(EClass theEClass, EObject theEObject) {
		if (theEClass.eContainer() == modelPackage) {
			return doSwitch(theEClass.getClassifierID(), theEObject);
		}
		else {
			List<EClass> eSuperTypes = theEClass.getESuperTypes();
			return
				eSuperTypes.isEmpty() ?
					defaultCase(theEObject) :
					doSwitch(eSuperTypes.get(0), theEObject);
		}
	}
	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	protected T1 doSwitch(int classifierID, EObject theEObject) {
		switch (classifierID) {
			case AdvancedPackageImpl.PLACEHOLDER: {
				MPlaceholder placeholder = (MPlaceholder)theEObject;
				T1 result = casePlaceholder(placeholder);
				if (result == null) result = casePartSashContainerElement(placeholder);
				if (result == null) result = caseStackElement(placeholder);