== Why is this an issue? String literals embedded in the source code will not be localized properly. This rule raises an issue when a literal string is passed as a parameter or property and one or more of the following cases is true: * The ``++LocalizableAttribute++`` attribute of the parameter or property is set to true. * The parameter or property name contains "Text", "Message", or "Caption". * The name of the string parameter that is passed to a ``++Console.Write++`` or ``++Console.WriteLine++`` method is either "value" or "format". === Noncompliant code example [source,csharp] ---- using System; using System.Globalization; using System.Reflection; using System.Windows.Forms; [assembly: NeutralResourcesLanguageAttribute("en-US")] namespace MyLibrary { public class Foo { public void SetHour(int hour) { if (hour < 0 || hour > 23) { MessageBox.Show("The valid range is 0 - 23."); // Noncompliant } } } } ---- === Compliant solution [source,csharp] ---- using System; using System.Globalization; using System.Reflection; using System.Resources; using System.Windows.Forms; [assembly: NeutralResourcesLanguageAttribute("en-US")] namespace MyLibrary { public class Foo { ResourceManager rm; public Foo() { rm = new ResourceManager("en-US", Assembly.GetExecutingAssembly()); } public void SetHour(int hour) { if (hour < 0 || hour > 23) { MessageBox.Show( rm.GetString("OutOfRangeMessage", CultureInfo.CurrentUICulture)); } } } } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Replace this string literal with a string retrieved through an instance of the "ResourceManager" class. === Highlighting String litteral endif::env-github,rspecator-view[]