Add NlsKey annotation
diff --git a/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/ITextProviderService.java b/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/ITextProviderService.java
index f192037..f8d6368 100644
--- a/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/ITextProviderService.java
+++ b/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/ITextProviderService.java
@@ -40,7 +40,7 @@
    *          </ul>
    * @return
    */
-  String getText(Locale locale, String key, String... messageArguments);
+  String getText(Locale locale, @NlsKey String key, String... messageArguments);
 
   /**
    * returns all key/text pairs defined for the given locale.
diff --git a/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/NlsKey.java b/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/NlsKey.java
new file mode 100644
index 0000000..57935b7
--- /dev/null
+++ b/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/NlsKey.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2010-2020 BSI Business Systems Integration AG.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     BSI Business Systems Integration AG - initial API and implementation
+ */
+package org.eclipse.scout.rt.platform.text;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Specifies that a method parameter, variable or field accepts Scout NLS text keys as values.
+ *
+ * @see TEXTS
+ * @see ITextProviderService
+ */
+@Documented
+@Retention(RetentionPolicy.CLASS)
+@Target({ElementType.PARAMETER, ElementType.LOCAL_VARIABLE, ElementType.FIELD})
+public @interface NlsKey {
+}
diff --git a/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/ScoutTexts.java b/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/ScoutTexts.java
index 57edffb..ad11aa8 100644
--- a/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/ScoutTexts.java
+++ b/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/ScoutTexts.java
@@ -48,11 +48,11 @@
     m_textProviders = BEANS.all(ITextProviderService.class);
   }
 
-  public final String getText(String key, String... messageArguments) {
+  public final String getText(@NlsKey String key, String... messageArguments) {
     return getText(null, key, messageArguments);
   }
 
-  public final String getText(Locale locale, String key, String... messageArguments) {
+  public final String getText(Locale locale, @NlsKey String key, String... messageArguments) {
     return getTextInternal(locale, key, getDefaultFallback(key), messageArguments);
   }
 
@@ -69,7 +69,7 @@
     return m_textProviders;
   }
 
-  protected String getTextInternal(Locale locale, String key, String fallback, String... messageArguments) {
+  protected String getTextInternal(Locale locale, @NlsKey String key, String fallback, String... messageArguments) {
     for (ITextProviderService provider : getTextProviders()) {
       String result = provider.getText(locale, key, messageArguments);
       if (result != null) {
@@ -83,7 +83,7 @@
     return "{undefined text " + key + "}";
   }
 
-  public String getTextWithFallback(Locale locale, String key, String fallback, String... messageArguments) {
+  public String getTextWithFallback(Locale locale, @NlsKey String key, String fallback, String... messageArguments) {
     return getTextInternal(locale, key, fallback, messageArguments);
   }
 }
diff --git a/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/TEXTS.java b/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/TEXTS.java
index 2a8699c..9a890e2 100644
--- a/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/TEXTS.java
+++ b/org.eclipse.scout.rt.platform/src/main/java/org/eclipse/scout/rt/platform/text/TEXTS.java
@@ -32,7 +32,7 @@
    * @see NlsUtility
    * @see Locale
    */
-  public static String get(String key) {
+  public static String get(@NlsKey String key) {
     return BEANS.get(ScoutTexts.class).getText(key);
   }
 
@@ -59,7 +59,7 @@
    * @see NlsUtility
    * @see Locale
    */
-  public static String get(String key, String... messageArguments) {
+  public static String get(@NlsKey String key, String... messageArguments) {
     return BEANS.get(ScoutTexts.class).getText(key, messageArguments);
   }
 
@@ -85,7 +85,7 @@
    * @see ScoutTexts
    * @see Locale
    */
-  public static String get(Locale locale, String key, String... messageArguments) {
+  public static String get(Locale locale, @NlsKey String key, String... messageArguments) {
     return BEANS.get(ScoutTexts.class).getText(locale, key, messageArguments);
   }
 
@@ -99,11 +99,11 @@
    *          The fallback is returned when the text for the given key is undefinded.
    * @return
    */
-  public static String getWithFallback(String key, String fallback, String... messageArguments) {
+  public static String getWithFallback(@NlsKey String key, String fallback, String... messageArguments) {
     return getWithFallback(null, key, fallback, messageArguments);
   }
 
-  public static String getWithFallback(Locale locale, String key, String fallback, String... messageArguments) {
+  public static String getWithFallback(Locale locale, @NlsKey String key, String fallback, String... messageArguments) {
     return BEANS.get(ScoutTexts.class).getTextWithFallback(locale, key, fallback, messageArguments);
   }
 }