Monday, January 25, 2010

Трудности перевода или опять про локализацию

У моего клиента возникла проблема с русскоязычной локализацией Microsoft Dymanics CRM при наполнении документов, а именно - отображение документов выглядит примерно таким образом:



Казалось бы при чём тут заголовок документа и Должность... Но видимо тем, кто переводил - виднее. Задался вопросом как переименовать это поле, но наткнулся на ряд проблем:
1. У клиента развёрнут только один язык (русский), а следовательно добраться до значения того поля через Параметры-Импортировать метки для трансляции - не является возможным.
2. Сущность Документ (salesliteratureitem) является некастомизируемой и потому её нельзя даже выгрузить в виде файлов кастомизации, чтобы отредактировав xml файла кастомизации, импортировав обратно в CRM и опубликовав - получить требуемый результат (как делалось уже не раз с другими сущностями).

Отсюда вывод, что необходимо редактировать непосредственно место, где данные метки хранятся.

Всем метки перевода (как опубликованные так и нет) лежат в таблице MetadataSchema.LocalizedLabel.

При помощи следующего запроса я получил идентификатор метки:

Select 
LocalizedLabelId
From
MetadataSchema.LocalizedLabel Where
ObjectId =
(Select AttributeId From MetadataSchema.Attribute
Where
EntityId = (Select EntityId From MetadataSchema.Entity Where LogicalName = 'salesliteratureitem')
And name = 'title')
And ObjectColumnName = 'DisplayName'
And LanguageId = 1049


После чего прямым обновлением я установил значение на то, на которое хотел поменять:

Update 
MetadataSchema.LocalizedLabel
Set Label = 'Заголовок'
Where LocalizedLabelId = '90D8A218-2341-1049-898A-0007E9E17EBD'


После этого выполнил iisreset и получил требуемый результат:



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

3 comments:

  1. Должность, т.к. на английском это поле называется "Title", которое в данном случае должно быть переведено как "Заголовок" (а не как "jobtitle" - должность).

    Ту же самую "Должность" можно наблюдать в списках ожиданий и не только.

    ReplyDelete
  2. Бредовый перевод. Куда локализаторы смотрели (

    ReplyDelete
  3. Есть ли у вас статья про стандартный механизм перевода? т.к. столкнулся с непонятной ошибкой, может есть какие то не описанные требования.

    ReplyDelete