streams/util
2024-08-27 06:59:53 +10:00
..
generate-hooks-index code cleanup continued 2022-02-24 13:00:41 -08:00
py Merge branch 'dev' of /home/macgirvin/roadhouse into dev 2021-11-17 11:47:38 -08:00
schemaspy-setup util cleanup 2024-03-13 20:18:49 +11:00
.htaccess Compatible update for .htaccess. 2015-06-22 00:45:29 +02:00
add_addon_repo add versioning to plugin repo 2019-08-04 18:25:15 -07:00
add_theme_repo address globbing issue in #1170 2018-05-21 20:01:03 +02:00
add_widget_repo address globbing issue in #1170 2018-05-21 20:01:03 +02:00
addons regression in util/addons 2022-03-12 17:50:30 -08:00
admins make sure we don't double dip 2024-06-14 12:52:52 +10:00
config psr12 updates 2021-12-03 10:02:31 +11:00
config.md document the config cli tool 2013-01-14 14:34:08 -08:00
connect it's done 2022-02-15 20:08:28 -08:00
db_update psr12 updates 2021-12-03 10:02:31 +11:00
dcp code cleanup continued 2022-02-24 13:00:41 -08:00
dmkdir code cleanup continued 2022-02-24 13:00:41 -08:00
docblox_errorchecker.php cleanup 2022-09-03 15:23:54 +10:00
Doxyfile rename Code to src 2024-03-13 16:21:03 +11:00
doxygen also explain how to install doxygen 2023-09-03 21:14:48 +10:00
Doxygen.footer remove date on the footer 2013-02-26 19:01:56 -08:00
Doxygen_phpvarfilter.php 💡 Add Doxygen fix for @var member variable documentation. 2017-05-04 21:58:25 +02:00
fhublocs Revert "relax mfa check on service endpoints" 2024-06-12 09:26:57 +10:00
genhook This checkin is surely broken, but I need to commit it because it represents a fair bit of work. 2022-02-12 00:50:48 -08:00
gtfiles strings update 2024-03-13 00:58:55 -07:00
importdoc module updates 2016-04-18 20:38:38 -07:00
maintenance Bring back maintenance mode. I personally dislike this because when things go wrong you have to know that you need to disable maintenance mode manually and people never discover this until they are locked out of their sites and panicking. But we absolutely need a way to shut down server activity so we can work on it. 2020-12-02 16:24:27 -08:00
make_contributors generate contributors file 2022-04-01 14:00:15 -07:00
makedocs disable pcss when installing since modules don't yet work and pcss uses the view module, plus weekly doc update 2013-05-14 21:25:58 -07:00
messages.po version+strings 2024-08-27 06:59:53 +10:00
nsh mopping up fep-8b32, also added FEP-2c59 2024-01-05 07:51:37 +11:00
pconfig it's done 2022-02-15 20:08:28 -08:00
pconfig.md revive doxygen documentation 2023-09-03 20:58:10 +10:00
php2po.php psr12 rewrites, continued 2021-12-03 14:01:39 +11:00
phplogtime psr12 updates 2021-12-03 10:02:31 +11:00
po2php.php minor translation issues with global $variables ($sitename, etc.) 2024-06-17 16:54:13 +10:00
precompile_smarty3.php psr12 rewrites, continued 2021-12-03 14:01:39 +11:00
README code cleanup continued 2022-02-24 13:00:41 -08:00
run_xgettext.sh fix run_xgettext 2022-10-25 02:16:55 -07:00
safemode new utility: util/safemode (on or off); requires util/addons 2016-06-06 16:34:10 -07:00
schemaspy psr12 updates 2021-12-03 10:02:31 +11:00
service_class psr12 updates 2021-12-03 10:02:31 +11:00
streams_post rename zap_post to streams_post 2023-12-30 20:11:37 +11:00
strings.php findpeople widget layout issue, rename Robert 2023-02-10 18:55:09 +11:00
translate translation stuff 2022-05-06 13:24:12 -07:00
typo.php rename Code to src 2024-03-13 16:21:03 +11:00
typohelper.php psr12 rewrites, continued 2021-12-03 14:01:39 +11:00
udall no file extension 2024-02-21 10:13:52 +11:00
update_addon_repo wrong test 2019-10-08 17:55:49 -07:00
update_theme_repo address globbing issue in #1170 2018-05-21 20:01:03 +02:00
update_widget_repo address globbing issue in #1170 2018-05-21 20:01:03 +02:00

Utilities

typo.php  - is a crude syntax checker to avoid checking in files with simple 
typos. It basically just loads each of our project files at once. Run from 
cmdline and see if any parsing errors are reported.


Internationalisation

run_xgettext.sh - extracts translatable strings from our project files.
 
strings.php - a recent run of the po2php program. This provides output that
is suitable for direct inclusion in the program. 

There are also translatable strings in the various files in the view/en
directory. By setting $lang = 'something' in .htconfig.php, the application 
will search for view/something/filename prior to the English version in 
view/en/filename when loading templates and view files. 

The translated string table should be placed in view/$lang/strings.php for
automatic inclusion.

You are not restricted to using known languages. You may also use this to
translate the software into "pirate", "surfer" or merely to replace certain
text which you don't care for.  

Note: The view/en directory contains many HTML template files, some of which 
only have a few words of English text amongst the HTML. Over time we will move
the translation to the replace_macros() function which calls these files and 
then relocate the files to the view directory. The files in the top-level view 
directory are template files which do not require translation. 


Placeholders

Do not translate placeholders in strings! Things like %s, %d, %1$s and $somename
are used to add dynamic content to the string.

%s represents a dynamic string, like in "Welcome to %s"
%d represents a dynamic number, like in "%d new messages"
$somename is a variable like in php
In %1$s %2$s,  the numbers are the position index of multiple dynamic content.
You could swap position in string of indexed placeholders.
e.g.
"%1$s's %2$s" => "John's photo", "John's item"
"%2$s di %1$s" => "foto di John", "elemento di John"


Plural

The tt() function supports plural form. Script extract.php write this in 
strings.php as an array, one string for every plural form language supports:

App::$string["%d message sent"] = Array(
 0 => "%d message sent",
 1 => "%d messages sent",
);

The function string_plural_select($n) defined in strings.php, return the string
index to use, related to the numbers of item (value of $n).

This is modelled after ngettext function of GNU gettext.
More info at http://www.gnu.org/software/hello/manual/gettext/Plural-forms.html


Xgettext and .po workflow

1. Run util/run_xgettext.sh script (on *unix sistems, with GNU xgettext installed)
	This script runs xgettext on source tree, extracting strings from t() and tt()
	functions, and creates a util/messages.po file.

	% cd util; ./run_xgettext.sh ../view/{language}/messages.po

	Replace {language} with the language you are working on - e.g. 'es', 'fr', 'de', etc. 

2. copy util/messages.po to view/<langauage>/messages.po
3. open view/<langauage>/messages.po with a text editor and fill in infos in
	"Last-Translator: FULL NAME <EMAIL@ADDRESS>"
	"Language-Team: LANGUAGE <LL@li.org>\n"
	"Language: \n"

	(eg:
	"Last-Translator: Guybrush Threepwood <gb@host.com>"
	"Language-Team: Pirate Friendika <pirate-friendika-ml@host.com>\n"
	"Language: pi\n"
	)
	
	For the line
	"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
	read GNU gettext manual at 
	http://www.gnu.org/software/hello/manual/gettext/Plural-forms.html
	
4. You could then translate the strings in text editor, but I suggest to use one
	of the many .po editors out there, like QtLinguist
	
5. run 
	$ php util/po2php.php view/<language>/messages.po
 	to create the strings.php file
 	
When strings are added or modified in source, you could run
	$ cd util; ./run_xgettext.sh ../view/<language>/messages.po
	to extract strings from source files and join them with the existing .po file:
	new strings are added, the existing are not overwritten.
	
If you already translated the project using strings.php, you could import your old
translation to messages.po. Run:
$ php util/php2po.php view/<language>/strings.php


You may also use the util/string_translator.php web interface to translate the string file, but it is disabled for website security reasons. The web server will need write permission to your language directories and the "Deny ..." line in util/.htaccess will need to be modified or commented to use the utility.