powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Локализация приложения для другого заказчика
25 сообщений из 29, страница 1 из 2
Локализация приложения для другого заказчика
    #39666202
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть сложное клиент-серверное приложение на винформс. Десяток больших проектов в солюшене. И это приложение хочет продавать другая фирма своим именем. Но надо чтобы все упоминания о исходной фирме были заменены на ее название. Весь UI, строки, ресурсы, немспейсы, сборки, инсталлятор.
Проблем в том, что сборки в проекте названы типа так:

CoolApp.Win.Client.exe
CoolApp.Api.dll
CoolApp.Core.dll
CoolApp.Storage.dll

А фирма покупатель хочет чтобы было:

SuperApp.Win.Client.exe
SuperApp.Api.dll
SuperApp.Core.dll
SuperApp.Storage.dll

Короче нужен один проект, под двумя названиями. Для части покупателей CoolApp , для других SuperApp

Простой поиск по CoolApp находит около 1000 вхождений в солюшен!
Тупое начальство требует сделать версию SuperApp - "Просто поминяй название и скампелируй!"
Когда говоришь, что не знаешь как это сделать они делают удивленные глаза...

В общем нужны советы как сделать из CoolApp еще версию SuperApp.
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666204
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt,

Сколько денег у тупого начальства?
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666205
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

не считал
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666206
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltКогда говоришь, что не знаешь как это сделать
Это плохой ответ
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666207
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltИзопропил,

не считал
Бюджет не известен?
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666225
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтоб два раза не вставать, надо всё переименовать в SuperCool.
А ещё лучше сразу в MegaSuperCool - вдруг ещё чего-то захочется...
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666226
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как этот зоопарк поддерживать?
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666228
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt,

Вон Оракл MySQL прикупили в свое время и продают под этим именем и ничё.
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666236
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltSuperApp.Api.dllубрать название до точки и всё поместить в папку с именем ген.директора покупателя.
Инсталлятор слелай красивый.
Короче, отвлеки внимание.
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666248
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну допустим имена пространств имен можно заменить.
Название сборок тоже.
Либо по дедовски, через поиск\замена
Либо по хипстерски, через Roslyn, правда я хз как и это потребует определенной реализации
В Resharper'е есть вроде инструменты для редактирования пространств имен.

Как я понимаю, в идеале должно быть еще так, чтоб новые версии CoolAPP можно было легко превратить в SuperAPP?
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666256
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял, надо поменять имена dll. Может, необязательно неймспейсы менять?
Тогда все длл делать с нейтральными именами кроме 3-4.
Ну а 3-4 длл можно и каким-либо text-replace'ом сделать при сборке в каком-нить CI. И в референсах незабыть...
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666277
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltПростой поиск по CoolApp находит около 1000 вхождений в солюшен!
А неймспейсы-то зачем менять? В csproj сменить названия сборок, неймспейсы оставить те же - не? Или этот CoolApp поставляется вместе с исходниками? Или заказчик любит заниматься декомпиляцией?
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666281
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныEoltПростой поиск по CoolApp находит около 1000 вхождений в солюшен!
А неймспейсы-то зачем менять? В csproj сменить названия сборок, неймспейсы оставить те же - не? Или этот CoolApp поставляется вместе с исходниками? Или заказчик любит заниматься декомпиляцией?++

и это не локализация
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666283
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt,
В общем сделайте половину работы, а там либо "шах помрет либо ишак сдохнет". Ну или менять место работы).
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666293
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, в общем я бы сделал как-то так (см. вложение). Портебуется руками немного поработать над csproj и sln файлами, больше ничего. Кодовая база останется общей.
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666353
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныНу, в общем я бы сделал как-то так (см. вложение). Портебуется руками немного поработать над csproj и sln файлами, больше ничего. Кодовая база останется общей.

Спасибо! Интересный вариант. А как сделать чтобы текстовые строки были у каждого солюшена свои?
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666362
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltСон Веры ПавловныНу, в общем я бы сделал как-то так (см. вложение). Портебуется руками немного поработать над csproj и sln файлами, больше ничего. Кодовая база останется общей.

Спасибо! Интересный вариант. А как сделать чтобы текстовые строки были у каждого солюшена свои?
У каждого отдельного солюшина они и так свои.
Или Вы ищете вариант как по ним быстро пройтись и изменить?
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666379
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAУ каждого отдельного солюшина они и так свои.
Или Вы ищете вариант как по ним быстро пройтись и изменить?

Нет там два солюшена с разными именами, а файлы с кодом у них общие.
Так что вопрос разделения строк все равно строит.
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666382
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltНет там два солюшена с разными именами,
Ты о чем?
Му.sln и MyExt.sln файлы?
Просто имена файлов не нравятся?
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666411
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltskyANAУ каждого отдельного солюшина они и так свои.
Или Вы ищете вариант как по ним быстро пройтись и изменить?

Нет там два солюшена с разными именами, а файлы с кодом у них общие.
Так что вопрос разделения строк все равно строит.
1. Все строки вынести в ресурсы (.resx).
2. Для главного проекта работа с ресурсами стандартная: Resources.resx + Resources.Designer.cs, и обращение через Properties.Resources.MyResourceName. Для SuperApp заводим отдельный resx-файл (SuperApp_Resources.resx, лежать должен тоже в папке Properties), набор строк - тот же, что и в Resources.resx, содержимое строк редактируем отдельно. Далее, придется подредактировать автосгенерированный Resources.Designer.cs - стандартный код
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public static global::System.Resources.ResourceManager ResourceManager {
  get {
    if (object.ReferenceEquals(resourceMan, null)) {
      global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CoolApp.Properties.Resources", typeof(Resources).Assembly);
      resourceMan = temp;
    }
    return resourceMan;
  }
}


заменить на
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
internal static global::System.Resources.ResourceManager ResourceManager {
  get {
    if (object.ReferenceEquals(resourceMan, null))
    {
      var prefix = string.Empty;
      if (Assembly.GetEntryAssembly().GetName().Name.Equals("SuperApp", StringComparison.OrdinalIgnoreCase))
        prefix = "SuperApp_";
      global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager($"CoolApp.Properties.{prefix}Resources", typeof(Resources).Assembly);
      resourceMan = temp;
    }
    return resourceMan;
  }
}


(т.е. для SuperApp подсовываем другой resx).
Пример в атаче (из ресурсов берется и устанавливается заголовок формы).
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666423
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может имеет смысл сделать скрипт "трансформации", потому как после обновления CoolApp нужно будет всё опять ручками делать.
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666426
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныEoltПростой поиск по CoolApp находит около 1000 вхождений в солюшен!
А неймспейсы-то зачем менять? В csproj сменить названия сборок, неймспейсы оставить те же - не? Или этот CoolApp поставляется вместе с исходниками? Или заказчик любит заниматься декомпиляцией?

Поддержу. С чем-то подобным сталкивался. Не стали сиськи мять, просто поменяли названия сборок в билде. Билд стал немного сложнее, но исходники вообще менять не пришлось.
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666427
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltСон Веры ПавловныНу, в общем я бы сделал как-то так (см. вложение). Портебуется руками немного поработать над csproj и sln файлами, больше ничего. Кодовая база останется общей.

Спасибо! Интересный вариант. А как сделать чтобы текстовые строки были у каждого солюшена свои?

Вытащить в сателлитные сборки -- ресурсы. И будет всё по фуншую.
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666428
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны1. Все строки вынести в ресурсы (.resx).

Вообще по возможности всегда надо так делать.
Когда объясняешь по пицот раз как надо делать, обычно морщат нос, да зачем, да нафига, да итак работает.
А потом приходит жаренный петух и...
...
Рейтинг: 0 / 0
Локализация приложения для другого заказчика
    #39666446
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttС чем-то подобным сталкивался. Не стали сиськи мять, просто поменяли названия сборок в билде.у вас тоже имена файлов dll включают имя компании? Не по предметке имена?
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Локализация приложения для другого заказчика
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]