Webzash boekhoudprogramma vertaling

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.260
Men kan ook een vertaalbestand aanmaken,

https://github.com/prashants/webzas...ng-to-translate-the-application-in-french-fra


Alleen wil het niet echt lukken

Wat zou men bedoelen met,

Step 4: Edit the translation file app/Plugin/Webzash/Locale/fra/LC_MESSAGES/webzash.po and replace the msgstr for each msgid in the entire file.


In bestand webzash.po staat o,a: zie laatste 4 regels


PHP:
# LANGUAGE translation of CakePHP Application
# Copyright YEAR NAME <EMAIL@ADDRESS>
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"POT-Creation-Date: 2015-12-26 08:45+0000\n"
"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
"Last-Translator: NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <EMAIL@ADDRESS>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"



#: Controller/AdminController.php:54
#: View/Elements/adminnavbar.ctp:47
msgid "Administrator Dashboard"
msgstr ""


Verder is er een verwijzing naar tekst in bestand bijv.

Controller/AdminController.php:54

PHP:
$this->set('title_for_layout', __d('webzash', 'Administrator Dashboard'));


De vorige stappen (map nl aanmaken enz,) heb ik ,
 
Laatst bewerkt:
PO-files zijn onderdeel van GNU GetText. Een PHP-onderdeel wat geschikt is voor vertalen.
Lees je er eens in, zou ik zeggen.
 
Als ik zo zie de tekst voor de vertaling invullen.
 
Ja maar niet werkend te krijgen


Overigens vroeg je naar een log bestand zie #101
 
Heb je al verdiept in GetText?
 
SVP goed lezen

Je vroeg o,a om een log bestand , daar heb je nou de inhoud van , en wat nu?
 
Het klinkt als een namespace probleem.
Welke PHP gebruik je? Geen composer gebruikt?
 
php v7.4.32 ik heb hier geen composer voor nodig, ook niet gebruikt
 
Laatst bewerkt:
Zie mijn link. Ik heb nooit gezegd dat het vaststond dat het daarmee te maken had. Maar goed: Dit heb ik zelf gegoogled in een paar tellen.
 
Dat kan ik zelf ook wel , heb je niets concreets.


Jij hebt toch ervaring met al die programma's.
 
Niet met "al die programma's", want er bestaan miljoenen webapplicaties. Ik heb wel ruime ervaring met PHP en debuggen.
Een beetje MVC-framework zoals CakePHP moet dan geen probleem zijn. Het kost dan wel wat meer tijd, dus daarom geef ik meer hints.
Ik vind het zonde van mijn tijd om zelf een testcase thuis op te bouwen en mij nog eens te verdiepen in de exacte opbouw en gebruik van dependency, zoals mailers.

Controleer voor die error-log over de mail de classnaam.
Laten we ons hier meer richten op de vertalingen. Maar ik raad aan om gewoon eens met Gettext te spelen. Bij voorkeur op een Linux-machine, ook al is het een webhosting.
 
Vertaling is niet moeilijk, wel heel veel werk
(mapje eng = Engels, mapje ned = Nederlands, mapje fra = Frans)

1. Kopieer: app/Plugin/Webzash/Locale/webzash.pot
naar nieuwe map: app/Plugin/Webzash/Locale/ned/LC_MESSAGES/

2. Rename dit bestand in: webzash.po

3. Maak met PO editor (of Notepad) de vertalingen in dit .po bestand, bijvoorbeeld
msgid "Change Password"
msgstr "Wijzig wachtwoord"

4. Wijzig regel 82/83 in bestand:
app/Plugin/Webzash/Controller/WebzashAppController.php
=> let op 'ned'
PHP:
/* Uncomment ANY of the below line to enable translation of the application in your langauge */
Configure::write('Config.language', 'ned');

Maar.... ook hier ben je de aanpassing kwijt bij een update van de app.
 
Laatst bewerkt:
@Bron

Heb jij het ook echt werkend gekregen?

Krijg ik

Notice (8): Trying to access array offset on value of type bool [CORE/Cake/I18n/L10n.php, line 412]
Code Context
L10n::_setLanguage() - CORE/Cake/I18n/L10n.php, line 412
L10n::get() - CORE/Cake/I18n/L10n.php, line 368
I18n::translate() - CORE/Cake/I18n/I18n.php, line 221
__d - CORE/Cake/basics.php, line 636
AuthComponent::_setDefaults() - CORE/Cake/Controller/Component/AuthComponent.php, line 435
AuthComponent::startup() - CORE/Cake/Controller/Component/AuthComponent.php, line 296
ObjectCollection::trigger() - CORE/Cake/Utility/ObjectCollection.php, line 129
CakeEventManager::dispatch() - CORE/Cake/Event/CakeEventManager.php, line 244
Controller::startupProcess() - CORE/Cake/Controller/Controller.php, line 683
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 189
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 167
[main] - APP/webroot/index.php, line 117


webzash-locale.PNG

Configure::write('Config.language', 'ned');

Maar.... ook hier ben je de aanpassing kwijt bij een update van de app.



Dat zal in 95% zelfde blijven , tenzij men met iets heel nieuws komt.


edit

Heb jij de map webzash hernoemd?
 
Laatst bewerkt:
Heb jij het ook echt werkend gekregen?
Ja, nergens heb ik iets in de DB aangepast. Files wijzigen alleen volgens wiki of faq.

De bedrag notatie werkt ook, ook weer met peek & poke (volgens de faq) in files.


app/Plugin/Webzash/View/Helper/GenericHelper.php

PHP:
    function currency_format_options() {
        return array(
            'none' => '(NONE)',
            '##,###.##'  => '##,###.##',
            '##,##.##'   => '##,##.##',
            '###,###.##' => '###,###.##',
            '###.###,##' => '###.###,##',
        );
    }


app/Plugin/Webzash/Config/currency.php

PHP:
function curreny_format($input) {
    switch (Configure::read('Account.currency_format')) {
        case 'none':
            return $input;
        case '##,###.##':
            return _currency_2_3_style($input);
            break;
        case '##,##.##':
            return _currency_2_2_style($input);
            break;
        case "###,###.##":
            return _currency_3_3_style($input);
            break;
        case "###.###,##":
            return _currency_NL_style($input);
            break;
        default:
            die("Invalid curreny format selected.");
    }
}

in dit bestand helemaal onderaan dit toevoegen

PHP:
function _currency_NL_style($num)
{
    $decimal_places = Configure::read('Account.decimal_places');
    return number_format($num,$decimal_places,',','.');
}


curr.jpg
 
Laatst bewerkt:
Ik had het meer over vertalen.

in webzash.po staat op regel 40


#: Controller/AdminController.php:54
#: View/Elements/adminnavbar.ctp:47
msgid "Administrator Dashboard"
msgstr "Administrator Frens"


uitvoer zie in front bij administer rechts boven



Met die bedrag notatie zal wel lukken., nog niet aan toegekomen.
 
Laatst bewerkt:
Misschien is het tijd om een testcase te maken om te weten hoe gettext werkt?
 
Bij mij staat in Locale/eng/LC_MESSAGES/webzash.po
PHP:
msgid "Administrator Dashboard"
msgstr ""

en in Locale/webzash.pot
PHP:
msgid "Administrator Dashboard"
msgstr ""

Volg daarom de manier zoals beschreven is in de wiki. Zie #15
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan