Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Current »

On This Page:

Before you Start.

Things you should be aware of before starting Revive Adserver development.

 


Historical Terms

Revive Adserver, as a project, has been around for a very long time, and as a result, some of the language that you will find used the code base will often not align with the language used in the UI, as the terms used in online advertising have changed over the decades.

The following is list of historical terms that may be helpful to be aware of when reading code/comments in code.

Current UI TerminologyPrevious Terminology In Code
Delivery OptionsACLs
Delivery Rules

Delivery Limitations

Limitations

Delivery Rule Sets

Targeting Channels

Channels

Managing Localization

The translation of localization strings for the user interface are managed through the Revive Adserver Crowdin project.

This means that if you think a translation used in the user interface for any language other than English is incorrect, please create an account with Crowdin, and suggest a new translation there. Accepted translations are periodically merged by the core Revive Adserver team into the master branch of Revive Adserver, and will be included in the next release.

However, if you think that:

  • A master English translation needs to be changed (e.g. to reflect changed functionality);
  • A new master English translation key needs to be added (e.g. to reflect new functionality); or
  • A master English translation key needs to be removed (e.g. to reflect removed functionality)

then these changes should all be performed as a change in the master branch.

The changes to the master English files are automatically imported into the Crowdin project. Translations in languages other English will be automatically updated to reflect the added or out of date translations that need to be corrected, and to remove any keys no longer required.

Apart from translations for plugins, all translation files for Revive Adserver can be found in the directories under lib/max/language.

Updating the master English translations for plugins is a little more complex than just editing a text file - please see the page on Plugin Translations for details on how to do this.

Once the master English translations in a plugin are updated, though, the changes are still automatically imported into Crowdin for translation into other languages.

Translation Strings in PHP Code

In PHP code, to obtain a correctly translated string for display to a user, based on their settings, use the OX_Translation class:

require_once RV_PATH . '/lib/OX/Translation.php';
$oTranslation = new OX_Translation();
$text = $oTranslation->translate('TargetString');

Translation Strings in Smarty Templates

In Smarty template code, to obtain a correctly translated string for display to a user, based on their settings, use the t function:

{t str=TargetString}

The translation key used in the examples excludes the "str" prefix used in the translation files. That is, in both the PHP and Smarty Template examples opposite, the code would be for the following entry in the translation files:

$GLOBALS['strTargetString'] = "Target String";

Numeric, Date, and Time Formats in Code

In Revive Adserver, there are no options for users to define how they want number, date, and time values to be formatted. Instead, the formats for all of these are based on the language selected.

To format numbers, use the OA_Admin_NumberFormat class:

require_once RV_PATH . '/lib/OA/Admin/NumberFormat.php';
$number = 12345.12;
$formattedNumber = OA_Admin_NumberFormat::formatNumber($number);

To format dates and times, the strings defined in the default.lang.php file should be used. For example, from the English translation file:

// Date & time configuration
$GLOBALS['date_format'] = "%d-%m-%Y";
$GLOBALS['time_format'] = "%H:%M:%S";
$GLOBALS['minute_format'] = "%H:%M";
$GLOBALS['month_format'] = "%m-%Y";
$GLOBALS['day_format'] = "%d-%m";
$GLOBALS['week_format'] = "%W-%Y";
$GLOBALS['weekiso_format'] = "%V-%G";

These strings should be used to format dates and times as appropriate. For example:

// Creating a formatted string (date only) from a PEAR::Date object
require_once RV_PATH . '/lib/pear/Date.php';
$oNewDate = new Date();
$formattedDate = $oNewDate->format($date_format);
  • No labels