ASP.NET локализация текста со встроенной ссылкой ... и ссылка является серверным элементом управления - PullRequest
1 голос
/ 02 марта 2010

Я работаю над интернационализацией и локализацией приложения ASP.NET и сталкиваюсь с проблемами в случаях, когда строковые литералы смешиваются с разметкой. Как этот пример:

Acme Carpet Retailers <a href="#" class="link" id="ssoLoginUrl" 
    runat="server">click here</a> to log into the site.

Для большинства строковых литералов я использую элемент управления Localize. Я могу встроить это в элемент управления Localize, теги и все такое, но проблема в том, что ссылка больше не является серверным элементом управления. (На него ссылается его идентификатор.)

Я не могу разделить строки («Acme Carpet Retailers», «нажмите здесь» и т. Д.), Потому что порядок слов может отличаться на разных языках.

Я видел несколько предложений о том, как это сделать, но все они предполагают, что текст со встроенной ссылкой назначается в коде, а не в разметке, и что это не серверный элемент управления.

Какой-нибудь совет, как локализовать это успешно?

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Разве вы не можете сделать только:

<%= String.Format(Resources.MyResource.mydata, 
"<a href=""#"" class=""link"" id=""ssoLoginUrl"" runat=""server"">",
"</a>"
) %>

Тогда я бы определил mydata ресурса как: "{0} нажмите здесь {1}, чтобы войти на сайт."

0 голосов
/ 03 марта 2010

Если порядок слов может отличаться на другом языке, у вас нет другого выбора, кроме как локализовать весь текст (включая тег) внутри resx.

Но, конечно, если это слишком хлопотно, вы можете изменить приложение, чтобы сделать текст более структурированным:

Acme Carpet Retailers <a href="#" class="link" id="ssoLoginUrl" 
runat="server">(Log in here)</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...