{"id":8032,"date":"2023-10-17T17:37:28","date_gmt":"2023-10-17T08:37:28","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=8032"},"modified":"2023-10-17T17:37:28","modified_gmt":"2023-10-17T08:37:28","slug":"c-rdlc-localizing-%eb%8b%a4%ea%b5%ad%ec%96%b4-%ec%a0%81%ec%9a%a9","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=8032","title":{"rendered":"C# &#8211; RDLC Localizing (\ub2e4\uad6d\uc5b4 \uc801\uc6a9)"},"content":{"rendered":"<h1>C# &#8211; RDLC Localizing (\ub2e4\uad6d\uc5b4 \uc801\uc6a9)<\/h1>\n<h2>\uae30\ubcf8\uc6d0\ub9ac<\/h2>\n<p>rdlc \ud30c\uc77c\uc744 \ud14d\uc2a4\ud2b8 \ud3b8\uc9d1\uae30\ub85c \uc5f0\ub2e4.<br \/>\n\ub2e4\uad6d\uc5b4 \uc801\uc6a9\ud560 \ubb38\uc790\uc5f4\uc744 <code>&lt;Value&gt;Report_Period&lt;\/Value&gt;<\/code> \uc640 \uac19\uc774 \ud0a4\uac12\uc73c\ub85c \ubcc0\uacbd\ud574 \uc900\ub2e4.<br \/>\nxml \uc744 \uc77d\uc5b4\uc628 \ud6c4 Report_Period \ub97c \ub2e4\uad6d\uc5b4 \uc801\uc6a9\ud55c \ubb38\uc790\uc5f4\ub85c Replace \ud574\uc900\ub2e4.<\/p>\n<h2>rdlc \ud30c\uc77c \ud30c\uc77c \ud3b8\uc9d1<\/h2>\n<pre><code class=\"language-xml\">            &lt;Paragraphs&gt;\n              &lt;Paragraph&gt;\n                &lt;TextRuns&gt;\n                  &lt;TextRun&gt;\n                    &lt;Value&gt;Report_Period&lt;\/Value&gt;<\/code><\/pre>\n<h2>Helper \ud30c\uc77c \uc0dd\uc131<\/h2>\n<pre><code class=\"language-csharp\">    public class RdlcReportHelper\n    {\n        public static Stream TranslateReport(Stream reportStream)\n        {\n            XDocument reportXml = XDocument.Load(reportStream);\n\n            foreach (var element in reportXml.Descendants(XName.Get(&quot;Value&quot;, @&quot;http:\/\/schemas.microsoft.com\/sqlserver\/reporting\/2016\/01\/reportdefinition&quot;)))\n            {\n                if (element.Value != null)\n                {\n                    if (element.Value.StartsWith(&quot;=&quot;) != true)\n                    {\n                        string translatedValue = Loc.Tr(element.Value, null);\n                        if (translatedValue != null &amp;&amp; translatedValue != element.Value)\n                        {\n                            element.Value = translatedValue;\n                        }\n                    }\n                }\n            }\n\n            Stream ms = new MemoryStream();\n            reportXml.Save(ms, SaveOptions.OmitDuplicateNamespaces);\n            ms.Position = 0;\n\n            return ms;\n        }\n    }<\/code><\/pre>\n<h2>xml \uc77d\uae30<\/h2>\n<pre><code class=\"language-csharp\">                using var fs = new FileStream(&quot;Report\\\\RDLC\\\\Report.rdlc&quot;, FileMode.Open);\n                using var ms = RdlcReportHelper.TranslateReport(fs);\n                reportViewer.LocalReport.LoadReportDefinition(ms);<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>C# &#8211; RDLC Localizing (\ub2e4\uad6d\uc5b4 \uc801\uc6a9) \uae30\ubcf8\uc6d0\ub9ac rdlc \ud30c\uc77c\uc744 \ud14d\uc2a4\ud2b8 \ud3b8\uc9d1\uae30\ub85c \uc5f0\ub2e4. \ub2e4\uad6d\uc5b4 \uc801\uc6a9\ud560 \ubb38\uc790\uc5f4\uc744 &lt;Value&gt;Report_Period&lt;\/Value&gt; \uc640 \uac19\uc774 \ud0a4\uac12\uc73c\ub85c \ubcc0\uacbd\ud574 \uc900\ub2e4. xml \uc744 \uc77d\uc5b4\uc628 \ud6c4 Report_Period \ub97c \ub2e4\uad6d\uc5b4 \uc801\uc6a9\ud55c \ubb38\uc790\uc5f4\ub85c Replace \ud574\uc900\ub2e4. rdlc \ud30c\uc77c \ud30c\uc77c \ud3b8\uc9d1 &lt;Paragraphs&gt; &lt;Paragraph&gt; &lt;TextRuns&gt; &lt;TextRun&gt; &lt;Value&gt;Report_Period&lt;\/Value&gt; Helper \ud30c\uc77c \uc0dd\uc131 public class RdlcReportHelper { public static Stream TranslateReport(Stream reportStream) { XDocument\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=8032\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-8032","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/8032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8032"}],"version-history":[{"count":1,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/8032\/revisions"}],"predecessor-version":[{"id":8033,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/8032\/revisions\/8033"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}