[WinApi] Język polski/Angielski


(Autologo) #1

Witam

Od 2 miesięcy tworze program (Edyto tekstowy) i teraz mam problem zrobiłem wszystkie teksty w pliku pl.ini no mam już tekstu napisane ale nie wiem jak zrobić np. że po naciśnięciu przycisku ANG będą wyświetlane teksty z pliku ang.ini? Za każdą odpowiedz dzięki.

Pozdro


(Krzkaczor) #2

Zależy jaki zastosowałeś sposób pobierania danych textów z pliku. Jeżeli są to poprostu stałe to tworzysz plik ang.ini i nie zmieniasz nazw stałych a tylko ich wartość, następnie ładujesz odpowiedni plik.


([alex]) #3

Tak jak mówi SyntaxError lub nazwać sekcji, dla polskiego czytasz z jednej a dla angielskiego z innej:

[pol]

Language="Polski"

Caption="Edyto tekstowy"

...

[ang]

Language="English"

Caption="Tekst editor"

...


(Autologo) #4

Więc tak np. zrobie (plik jezyk.ini)

[polski]

name=costam po pl

...

[angielski]

name=costam po ang

...

mam plik jezyk.ini

czytam go tak:

jezyk.h

CHAR name[256]; //zmienna

main.cpp

GetPrivateProfileString("polski","name" ,noload,name,256 ,"Lag\jezyk.ini");

Teraz pytanie jak zrobić żeby ta nazwa sekcji się zmieniałana "polski" "angielski" ?

PS:Jeszcze jedno jak zrobić żeby te teksty wyświetlały się w plikach *.rc chodzi o bo jak robie np menu mam np stawie zamist nazwy to zmienną to wyświetla się błąd (wydaje mi się że nie może odnaleść tej zmiennej)


([alex]) #5
//Globalne zmienne na początku main.cppchar *Jezyki[]=

(Autologo) #6

tak dzięki ale niestety nie umiem zrobić żeby ta nazwa sekcji się zmieniała np po naciśnieciu w menu angielski zmieni się ta sekcja.


([alex]) #7

Wystarczy zmienić zmienną UzywajJezyk.

0 - polski

1 - angielski

Czy nie jesteś w stanie po kliknięciu na menu zmienić jednej zmiennej?


(Autologo) #8

Wiem że troche to kompromitujące ale nie. zawsze mam problemy z tym :confused:


([alex]) #9

No to nie id tego zacząłeś. Może weź się za podstawy, w każdym środowisku pełno przykładów obsługi menu, jak za mało to weź google.

http://peb.pl/programowanie/462029-c-an ... pytan.html

tu jest przykład całkiem rozbudowanego menu.


(Autologo) #10

Chyba mnie nie zrozumiałeś.

Kto by nie umiał obsłyżyć komunikatu od menu?

problem polega na ze nie wiem co wpisać na zaden sposob nie moge tego zrobic ....

Sciągnij se mój program i zobacz czy jest fajny :slight_smile:

Texter v1.2.5 Beta


([alex]) #11

UzywajJezyk=0; // Na klikniecie menu język polski

UzywajJezyk=1; // Na klikniecie menu język angielski


(Autologo) #12

taaaaa... tak już probowalem i nic naciskam angielski i caly czas te same teksty...


([alex]) #13

Oprócz tego muszą wszystkie instrukcje typu:

GetPrivateProfileString(Jezyki[uzywajJezyk],"name" ,noload,name,256 ,".\Lang\jezyk.ini");

się powtórzyć, czy ty myślałeś że sami się powtórzą?


(Autologo) #14

To już też próbowałem .... i nic ....


([alex]) #15

Ale zrozum, masz zrobić kilka rzeczy po kolei:

  1. [*:2ofi7fte]Zmienić wartość zmiennej UzywajJezyk.[*:2ofi7fte]Jeżeli gdzieś było użyto to powtórzyć GetPrivateProfileString(Jezyki[uzywajJezyk],"name" ,noload,name,256 ,".\Lang\jezyk.ini"); dla każdego użytego "name"[*:2ofi7fte]Podstawić bufor name w to miejsce gdzie był podstawiony poprzednio.

(Autologo) #16

Wiesz co tak se możemy gadać przez następne 2 tygodnia a ja i tak nie załapie (jestem wzrokowcem) jeżeli nie zobacze godu nie zrozumiem ... napisz najprostrzy program i będzie OK (oczywiście jak masz wolny czas)


([alex]) #17

Wrzuć to co już masz to ci poprawie to co nie tak.


(Autologo) #18

Wiesz ten program robie 1 mesiac i nie chce zeby wpadly w nie polowane rece (cyhba wisz o co chodzi) mowie zrob najprosty program i tyle a tego kody to jest 2000linijek w jedym pliku wiec...


([alex]) #19

To skróć go odpowiednio przed wrzuceniem, do 20 linijek, aby tylko zostało kilka miejsc z wczytywaniem z pliku tekstów.


(system) #20

Czytam ten temat i dalej niewiem co mam zrobić Jak zrobiłem edytor tekstu w Dev-C++ na bibliotekach QT chce tak zrobić że jeden plik .ini będzie jednym językiem np. polish.ini english.ini Co mam gdie dopisać. Jestem początkójącym