Archív

Archív pro

Subversion pro každého

28.07.2008 View Comments

Protože jsem v češtině nenašel žádnou knihu, kterou bych mohl strčit do ruky někomu kdo se mě ptá jak začít pracovat se Subversion a návody na webu nejsou zcela ucelené, tak jsem se rozhodl napsat takovou příručku pro každého kdo chce se Subversion pracovat.

Nesnažím se o překlad SVN book i když ten by této knize výrazně pomohl, ale snažím se shrnout postupy a praxe co nejjednodušeji, aby to začátečník pochopil. Já už se SVN, ale dělám delší čas a nemám potřebný odstup a proto budu vděčný za zpětnou vazbu co týká obsahu, co přidat a co je zbytečné a případných chyb.

Ke psaní jsem použil Docbook a jako editor XMLmind, PSPad a SciTE. Do html převádím docbook za pomoci PHP tímto jednoduchým skriptem.

<?php
$xml_filename="svn-kniha.xml";
$xsl_filename="c:\Program Files\XMLmind_XML_Editor\addon\config\docbook\xsl\xhtml\docbook.xsl";

$doc = new DOMDocument();
$xsl = new XSLTProcessor();

$doc->load($xsl_filename);
$xsl->importStyleSheet($doc);

$doc->load($xml_filename);

file_put_contents("index.html",str_replace("</head>","><link href='default.css' type='text/css' rel='stylesheet' />
</head>",$xsl->transformToXML($doc)));

?>
Categories: scm, subversion Tags:

NetBeans IDE 6.5 Milestone 1

25.07.2008 View Comments

Dnes jsem narazil na, že hoši od NetBeans vydali 6.5M1 a ukázali tam nové vlastnosti, které v 6.5 budeme mít pro PHP.

Je vylepšená podpora code completion, je vidět, že zahrnuje PHPDoc. Roman Štrobl ukazuje ve svém screencastu jak to funguje. Myslím, že to přesně to co jsem od NetBeans očekával plus pár věcí, které se budou hodit. Pěkný refaktoring i podpora require jsou další nové věci. Novinky v angličtině jsou pěkně popsány na blogu Netbeans PHP.

Categories: ide, php Tags:

Gettext a PHP

15.07.2008 View Comments

Gettext je Open Source nástroj na překlad aplikací. Kdo s tímto nástrojem pracuje může můj článek rovnou vynechat, protože tyto věci zná.

Getext má jedinou nevýhodu, kterou lze celkem přejít, nejde přímo lidsky číst, ukládájí se v binárním tvaru do souboru s příponou *.mo. Pokud používáte nějakou vlastní metodu pro překlad určitě to bude něco z toho co nabízí Zend Framework (ZF) v Zend_Translate (pole, csv, xml – tbx, xliff, xmltm, gettext) nebo nějakou metodu založenou na databázi. Sám jsem zkusil během let většinu těchto metod a celkem se s nimi pracovalo dobře pokud se aplikace moc nerozrostla a případně pokud neměl překládat někdo kdo neuměl pracovat s prostředím ve kterém jsem pracoval.

Na Gettextu se mi líbí hlavně aplikace pro editaci poEdit. Aplikace umí parsovat zdrojové kódy pro překlad. To je asi nejlepší co moje dřívější metody nikdy neměli, gettext si najde sám co překládat a umožňuje použít už hotové překlady pro automatické překlady.

Pro práci s Gettextem potřebujete buď ZF nebo extenze pro gettext. ZF v 1.5 zatím nepodporuje množná čísla.

Ukázka použití getextu jako extenze PHP.

<?php
// Nastaveni jazyka
setlocale(LC_ALL, 'cs');
// Urcení mista prekladu
bindtextdomain("TestApp", "./lang");
// Nastaveni domeny
textdomain("TestApp");
// Preklad se hleda v souboru ./lang/cs/LC_MESSAGES/TestApp.mo
// Pro tisk je potreba pouzit tento postup
echo gettext("Vitejte v aplikaci");
// nebo pouzit alias _() pro gettext()
echo _("Vitejte v aplikaci");
?>

V ZF nemusíte tak striktně dodržovate cesty a práce s gettextem je obdobná.

<?php
// Překlad

$t = new Zend_Translate('gettext', '../lang/czech.mo', 'cs');

$t->setLocale('cs');

// tisk

echo $t->_(‘Vítejete v aplikaci’);

?>

Aplikace poEdit je podle mě asi nejznámější a teké nejlepší pro práci s Gettextem, edituje soubory zdrojové v *.po a kompiluje výsledek do *.mo při ukládání. Je potřeba jen mít správně nastavené cesty k projektu se kterým právě pracujete.

Pro práci s ZF je jen potřeba přidat pro v konfiguraci další koncovky do PHP parseru, já jsem používal překlad kromě php skriptech také v v phtml. Bez úpravy nastavení by nenašel xgettext vaše řetězce k předkladu.

Osobně se mi líbí na gettextu, že můžu mít poEdit současně otevřený s Eclipse nebo jiným editorem a překlady průběžně doplňovat a když je to větší projekt tak jednoduše to celé dělám v jednom jazyce případně v CZ, EN variantě a potom může kdokoliv lehce přeložit text do dalšího jazyka.

Zdrojáky ukázky jsou ke stažení na zip archivu.

V ZF 1.6 budou změny v Zend_Translate.

Používá někdo nějakou vlastní metodu s parsováním pro překlad textů obdobně jako to dělá getext?

Categories: php, zend framework Tags:

AnkhSVN 2.0 je konečně finální

10.07.2008 View Comments

AnkhSVN je SVN klient pro Visual Studio,  verze 2.0 přináší kromě řady vylepšení podporu Subversion 1.5. Vyžaduje VS2005 a vyšší. Myslím, že to je dobrá správa pro všechny kdo VS a SVN používají.

Categories: ide, scm, subversion Tags:

NetBeans, PDT a Subversion 1.5

01.07.2008 View Comments

Před časem, jsem přešel z Eclipse PDT na NetBeans IDE Early Access for PHP a to hlavně z důvodu, že projektový adresář je umístněný libovolně mimo zdrojové kódy a také pro lepší práci se subversion než mi poskytoval Subclipse. Když vyšel nový Subversion 1.5 měl jsem obavy, že budu muset čekat na novou verzi pluginu pro Subversion jako je to u PDT.

Subclipse 1.4.x pro Eclipse je už venku, tak to naštěstí u PDT není problém. Ale jak to je u NetBeans, čekám na říjen kdy má být verze 6.5 s podporou PHP, ale dosavadní funkčnost mi celkem vyhovuje, asi je to tím, že stejně edituji nejvíce v PsPadu a SciTE.

NetBeans, ale s Subversion 1.5 fungují bez problémů a to proto, že potřebují ke svému běhu jen binární soubory Subversion,  používají totiž běžného řádkového klienta. Tak pokud odinstalujete starou verzi Subversion a nainstalujete novou, stačí potom nastavit cestu do $PATH, případně se vás NetBeans zeptají kde Subversion najdou. Jednoduché a geniální.

Samozřejmě to má i svoje nevýhody, podporují se základní funkčnosti a až v dalších verzích budou, doufám, k dispozici funkce, které jsou v klientu nové (changelisty, merge tracking atd.). Klient v NetBeansech nemá implementovány i další vlastnosti jako nemožnost propojení s Issue trackerem jak je možné v Subclipsu nebo TSVN. Já primárně používám TSVN a proto mi tyto necnosti příliš nevadí s spíše se mi líbí diff přímo při editaci, ukázání anotací apod. Náhled na používání Subversion v NetBeans je na obrázku.

Jak jsou na tom ostatní prostředí Komodo IDE, Zend? Těším se na komentáře.

Categories: ide, php, subversion Tags:

Switch to our mobile site