
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
91 lines
1.9 KiB
Plaintext
91 lines
1.9 KiB
Plaintext
== 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[]
|