Modify Resources.tt to generate a property and a format method for each resource
This commit is contained in:
parent
5dccaabe88
commit
e859697d58
|
|
@ -83,35 +83,12 @@ namespace {0}
|
||||||
foreach (var resourceString in resourceStrings)
|
foreach (var resourceString in resourceStrings)
|
||||||
{
|
{
|
||||||
GenerationEnvironment.AppendLine();
|
GenerationEnvironment.AppendLine();
|
||||||
GenerationEnvironment.AppendFormat(@" /// <summary>").AppendLine();
|
RenderHeader(GenerationEnvironment, resourceString);
|
||||||
foreach (var line in resourceString.Value.Split(new[] { Environment.NewLine }, StringSplitOptions.None))
|
RenderProperty(GenerationEnvironment, resourceString);
|
||||||
{
|
|
||||||
GenerationEnvironment.AppendFormat(" /// {0}", line.Replace("<", "<").Replace(">", ">"))
|
GenerationEnvironment.AppendLine();
|
||||||
.AppendLine();
|
RenderHeader(GenerationEnvironment, resourceString);
|
||||||
}
|
RenderFormatMethod(GenerationEnvironment, resourceString);
|
||||||
|
|
||||||
GenerationEnvironment.AppendFormat(
|
|
||||||
@" /// </summary>
|
|
||||||
internal static string {0}{1}
|
|
||||||
{{
|
|
||||||
", resourceString.Name, resourceString.Arguments.Count > 0 ? resourceString.Parameters : string.Empty);
|
|
||||||
|
|
||||||
if (resourceString.Arguments.Count == 0)
|
|
||||||
{
|
|
||||||
GenerationEnvironment.AppendFormat(
|
|
||||||
@" get {{ return GetString(""{0}""); }}", resourceString.Name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GenerationEnvironment.AppendFormat(
|
|
||||||
@" return string.Format(CultureInfo.CurrentCulture, GetString(""{0}""{1}), {2});",
|
|
||||||
resourceString.Name,
|
|
||||||
resourceString.UsingNamedArgs ? ", " + resourceString.FormatArguments : null,
|
|
||||||
resourceString.ArgumentNames);
|
|
||||||
}
|
|
||||||
|
|
||||||
GenerationEnvironment.AppendLine().Append(
|
|
||||||
@" }").AppendLine();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GenerationEnvironment.Append(@"
|
GenerationEnvironment.Append(@"
|
||||||
|
|
@ -145,6 +122,49 @@ namespace {0}
|
||||||
}
|
}
|
||||||
#>
|
#>
|
||||||
<#+
|
<#+
|
||||||
|
private static void RenderHeader(StringBuilder builder, ResourceData resourceString)
|
||||||
|
{
|
||||||
|
builder.Append(" /// <summary>")
|
||||||
|
.AppendLine();
|
||||||
|
foreach (var line in resourceString.Value.Split(new[] { Environment.NewLine }, StringSplitOptions.None))
|
||||||
|
{
|
||||||
|
builder.AppendFormat(" /// {0}", line.Replace("<", "<").Replace(">", ">"))
|
||||||
|
.AppendLine();
|
||||||
|
}
|
||||||
|
builder.Append(" /// </summary>")
|
||||||
|
.AppendLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void RenderProperty(StringBuilder builder, ResourceData resourceString)
|
||||||
|
{
|
||||||
|
builder.AppendFormat(" internal static string {0}", resourceString.Name)
|
||||||
|
.AppendLine()
|
||||||
|
.AppendLine(" {")
|
||||||
|
.AppendFormat(@" get {{ return GetString(""{0}""); }}", resourceString.Name)
|
||||||
|
.AppendLine()
|
||||||
|
.AppendLine(" }");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void RenderFormatMethod(StringBuilder builder, ResourceData resourceString)
|
||||||
|
{
|
||||||
|
builder.AppendFormat(" internal static string Format{0}({1})", resourceString.Name, resourceString.Parameters)
|
||||||
|
.AppendLine()
|
||||||
|
.AppendLine(" {");
|
||||||
|
if(resourceString.Arguments.Count > 0)
|
||||||
|
{
|
||||||
|
builder.AppendFormat(@" return string.Format(CultureInfo.CurrentCulture, GetString(""{0}""{1}), {2});",
|
||||||
|
resourceString.Name,
|
||||||
|
resourceString.UsingNamedArgs ? ", " + resourceString.FormatArguments : null,
|
||||||
|
resourceString.ArgumentNames);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
builder.AppendFormat(@" return GetString(""{0}"");", resourceString.Name);
|
||||||
|
}
|
||||||
|
builder.AppendLine()
|
||||||
|
.AppendLine(" }");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private class ResourceData
|
private class ResourceData
|
||||||
{
|
{
|
||||||
|
|
@ -166,7 +186,7 @@ private class ResourceData
|
||||||
|
|
||||||
public string Parameters
|
public string Parameters
|
||||||
{
|
{
|
||||||
get { return "(" + string.Join(", ", Arguments.Select(a => "object " + GetArgName(a))) + ")"; }
|
get { return string.Join(", ", Arguments.Select(a => "object " + GetArgName(a))); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetArgName(string name)
|
public string GetArgName(string name)
|
||||||
|
|
@ -174,5 +194,4 @@ private class ResourceData
|
||||||
return UsingNamedArgs ? name : 'p' + name;
|
return UsingNamedArgs ? name : 'p' + name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#>
|
#>
|
||||||
Loading…
Reference in New Issue