Dopisanie komendy w pliku ini

0

Cześć,
Podjąłem próbę przetłumaczenia jednego programu do obsługi akwarium z angielskiego na polski; (hobbistycznie); przetłumaczyłem już pliki dll; większość wyświetla się już w naszym języku; jednak mam problem w zasadzie z 3 słowami, które zawarte są w pliku INI - gdy je zamienie na mój polski tekst, program je wyświetla - jednak ich kliknięcie (są to zakładki), nie wywołuje otwarcia żądanych okien; domyślam się, że są one zapisane w kodzie programu.. i dlatego po zmianie nazwy w pliku INI nie linkują.

Info:

  1. Użyłem programu INNO EXTRACT aby wypakować instalator programu.
  2. Biblioteki DLL przetłumaczyłem dzięki RESORCE HACKER (taki ze mnie haker)
  3. Plik o którym pisze znajduje się domyślnie w folderach programu (Program Files (x86))
  4. Kod:
[Plugin]
Name=Conditions
FileName=Conditions
GroupName=Logs
WebPageName=Conditions
Description=Conditions (Conditions) Plugin: Use to keep track of and log aquarium paramters you measure with test kits.  
Version=1.0
Author=SeaApple Software
ReleaseDate=01/22/2005
HomeURL=
UpdateURL=
HelpURL=
Interfaces=Track,Configure,Log,Webpage, Help
TrackNodes=Chemistry,Calculations,"Water Change"

GUID={F8F4B5BC-1FB5-48EE-8F05-C51A822F6677}
  1. TrackNodes=Chemistry,Calculations,"Water Change" <------ Chciałbym, aby program wyświetlał inne słowa zamiast tych

Chemistry = Testy Wody
Calculations= Obliczenia
Water Change= Podmiana Wody

  1. Czy można użyć jakiejś komendy, aby aplikacja odczytała te słowa z pliku INI ale wyświetliła moje słowa?
  2. To pewnie ten GUID blokuje tutaj tą zamianę.... jak się dostac do tego jednego GUIDA ewentualnie i dokonać zmiany?
  3. Program napisany jest w Delphi
  4. Czy potrzeba Wam więcej informacji? Na serio mi zależy... bo przetłumaczyłem już setki linijek.... i stoję w miejscu ;/
0
blackwojtek87 napisał(a):

[…] jednak mam problem w zasadzie z 3 słowami, które zawarte są w pliku INI - gdy je zamienie na mój polski tekst, program je wyświetla - jednak ich kliknięcie (są to zakładki), nie wywołuje otwarcia żądanych okien; domyślam się, że są one zapisane w kodzie programu.. i dlatego po zmianie nazwy w pliku INI nie linkują.

Tzn. jeśli zmienisz tę linijkę:

TrackNodes=Chemistry,Calculations,"Water Change"

na taką:

TrackNodes="Test Wody",Obliczenia,"Podmiana Wody"

to po kliknięciu w węzeł drzewka nic się nie dzieje?

  1. Czy można użyć jakiejś komendy, aby aplikacja odczytała te słowa z pliku INI ale wyświetliła moje słowa?

Skoro – jak twierdzisz – zmiana wartości klucza TrackNodes nie działa prawidłowo, to problem leży gdzieś indziej. Być może program korzysta z tych wartości do odpalania konkretnych akcji, a po zmianie tekstu nie da się tej akcji określić i np. lecą wyjątki (łapane w programie i ”uciszane”) i przez to nic się nie dzieje.

Masz kod tej aplikacji?

0

Dzięki za odpowiedź.

Tzn. jeśli zmienisz tę linijkę:

TrackNodes=Chemistry,Calculations,"Water Change"

na taką:

TrackNodes="Test Wody",Obliczenia,"Podmiana Wody"

to po kliknięciu w węzeł drzewka nic się nie dzieje?

Dokładnie tak.

Masz kod tej aplikacji?
Niestety nie mam kodu.

  1. Rozumiem zatem, że chyba nic z tym nie zrobie... Nie powiem, że nie próbowałem, dekompilować po swojemu tego pliku EXE, (HEX Workshop czy DeDE lub PE Explorer) bo nawet w samym notatniku otwarty plik EXE wyszukuje moje potrzebne słowa, niestety próba ponownego zapisu powoduje, że aplikacja nie działa... Co mnie nie dziwi wcale... bo nie mam o tym zielonego pojęcia; wiem tylko tyle ile przeczytałem w ciągu ostatnich kilku dni w Internecie.

  2. Niemiej jednak, może ktoś wpadnie ja jakiś pomysł jak rozwiązać mój problem.

  3. Cały czas zastanawiam się też, czy nie wystarczyłaby jakaś odpowiednia linijka w pliku INI... (próbowałem się bawić z komendami replace, before/after string, itp - ale oczywiście nic z tego nie wyszło - i również nie jestem zaskoczony, bo tego nie potrafię robić)

Będę wdzięczny za odpowiedzi. Również proszę napisać, że mam sobie dać spokój, jeśli faktycznie nie da się nic zrobić...

0
blackwojtek87 napisał(a):

Dokładnie tak.

Widać aplikacja używa tych danych nie tylko do wyświetlenia w drzewie.

Niestety nie mam kodu.

No to kicha – pozostaje rewersowanie.

  1. Rozumiem zatem, że chyba nic z tym nie zrobie... Nie powiem, że nie próbowałem, dekompilować po swojemu tego pliku EXE, (HEX Workshop czy DeDE lub PE Explorer) bo nawet w samym notatniku otwarty plik EXE wyszukuje moje potrzebne słowa, niestety próba ponownego zapisu powoduje, że aplikacja nie działa...

Takie rzeczy robi się w hex-edytorze, a nie w notatniku… Nie możesz ot tak zmieniać danych w pliku wykonywalnym – tym bardziej, jeśli te ciągi nie są resourcestringami.

Zawsze możesz w hex-edytorze otworzyć plik wykonywalny, znaleźć w nim te ciągi i zmienić je na swoje, zachowując ich długość – swoje (polskie) ciągi wybierasz takie, aby było niedłuższe niż oryginalne, a pozostałą część wypełnić znakami NULL. Następnie w pliku INI ustawić takie same (już bez NULL-i). Może zadziała.

  1. Cały czas zastanawiam się też, czy nie wystarczyłaby jakaś odpowiednia linijka w pliku INI...

Pliki INI służą wyłacznie do przechowywania danych w postaci prostych struktur, absolutnie bez żadnej logiki, więc niczego na tym polu nie zdziałasz. Aby można było w wartościach kluczy podawać jakieś instrukcje, sam program musiałby być do tego przystosowany – a nie sądzę, aby był.

1 użytkowników online, w tym zalogowanych: 0, gości: 1