Translating a ClassicPress plugin with Poedit: Download Poedit

ClassicPress PluginsThis post is part of the sub-series on Translating a ClassicPress plugin which is part of the Translating a ClassicPress plugin series.

Poedit is available as a free download fow Windows, Mac and Linux. I am going to be showing the Windows version, so click the large purple Free Download for Windows 7+ button:

Poedit download page

This will allow you to download and save the file or run the installer.

Translating a ClassicPress plugin

Translating a ClassicPress plugin with Poedit
What is Poedit?
Download Poedit

MDGP “October 2019” Release Feature of the Day: Payroll Option to exclude Additional Withholding Amount

Microsoft Dynamics GPThe Inside Microsoft Dynamics GP blog has started a series Feature of the Day posts for Microsoft Dynamics GP “October 2019” Release on which I am following and adding commentary. The index for this series of posts is .

The tenth Feature of the Day is Payroll Option to exclude Additional Withholding Amount. With this change, when you build the check file, you have the option to include or exclude the additional withholding for Federal, State and Local tax amounts.

By default, any existing build check default ID will have these settings automatically marked. However, you can unmark the settings and save them with the build check default ID and they will be remembered in the future when you select that default ID.

Now, you can do special check runs without having to manually update employees who have setup additional withholding amounts.

Build Payroll Checks

Click to show/hide the MDGP "October 2019" Release Feature of the Day Series Index

Translating a ClassicPress plugin with Poedit: What is Poedit?

ClassicPress PluginsThis post is part of the sub-series on Translating a ClassicPress plugin with Poedit which is part of the Translating a ClassicPress plugin with Poedit series.

Poedit calls itself the fastest and most convenient way to translate apps and sites with gettext and is available for Windows, Mac and Linux and has two versions available; standard and pro.

Both versions have the same core features with Pro adding collaboration and functionality specific to Wordpress (which would also work with ,a href=’https://www.classicpress.net’>ClassicPress).

Poedit was built to handle translation using gettext, which is used by many PHP projects such as ClassicPress, WordPress and Drupal), Python projects (Django) and many applications running on Linux.

The Poedit features page explains how the translation of strings from code works as this:

  • The developer writes their code using gettext APIs.
  • The developer extracts all translatable texts in their code and creates a master PO file that translators can work with.
  • The translator works through the PO file provided and hands back their translations, one file per language.
  • Whenever the source code changes and there are translation differences the developer re-runs the extraction and updates the master PO file accordingly.
  • The translator only has to update their translation file to match the master file 100%.

Poedit aims to help with stages 2 through 5 and save both translators and developers time at each stage.

In this series, I will be using the standard Windows version of Poedit.

Translating a ClassicPress plugin

Translating a ClassicPress plugin with Poedit
What is Poedit?
Download Poedit

MDGP “October 2019” Release Feature of the Day: GL Journal Entry Inquiry Enhancements

Microsoft Dynamics GPThe Inside Microsoft Dynamics GP blog has started a series Feature of the Day posts for Microsoft Dynamics GP “October 2019” Release on which I am following and adding commentary. The index for this series of posts is .

The ninth Feature of the Day is GL Journal Entry Inquiry Enhancements. A number of enhancements have been made to the Journal Entry Inquiry window:

  • The year drop down list will now display in reverse order with the most recent year displayed first. This change has also been included in the following windows:
    • Net Change Inquiry
    • Detail Inquiry
    • Summary Inquiry
    • GL Trial Balance Report options
  • The User who Posted field has been added to the window; this field will display for both open and historical journal entries.
Journal Entry Inquiry

Click to show/hide the MDGP "October 2019" Release Feature of the Day Series Index

Translating a ClassicPress plugin with Poedit: Series Index

ClassicPress PluginsThis series is part of the Translating a ClassicPress plugin with Poedit series.

Poedit is a popular tool for translating app and plugins which use the gettext libraries; in this series, I am going to take a look at both installing Poedit and using it to translate a ClassicPress plugin.

Translating a ClassicPress plugin

Translating a ClassicPress plugin with Poedit
What is Poedit?
Download Poedit

Translating a ClassicPress plugin: How to do it

ClassicPress PluginsThis series if a is part of the Translating a ClassicPress plugin series.

With the plugin internationalized and next step is to localize it by translating it into another language. There is a number of tools available which can be used to do this. As part of this main series, I am going to cover two of the commonly used tools for translating plugins.

The first is an application called PO Edit which describes itself as the fastest and most convenient way to translate apps and sites with gettext.

The second is the GlotPress plugin for WordPress which works seamlessly with ClassicPress. GlotPress can also be used to translate apps and sites with gettext, but with the added benefit of collaboration.

Translating a ClassicPress plugin

Internationalizing a ClassicPress plugin: Load plugin translations

ClassicPress PluginsThis post is part of the sub-series on Internationalizing a ClassicPress plugin which is part of the Internationalizing a ClassicPress plugin series.

With the strings of a plugin internationalized, the final step in the internationalization of a plugin, is to add the action to load the translation file:

function myclassicpressplugin_init() {
    $plugin_rel_path = basename(dirname(__FILE__)).'/languages'; /* Relative to WP_PLUGIN_DIR */
    load_plugin_textdomain('my-classicpress-plugin', false, $plugin_rel_path);
}
add_action('plugins_loaded', 'myclassicpressplugin_init');

Translating a ClassicPress plugin

Internationalizing a ClassicPress plugin
How does internationalization work?
What is a Text Domain and how is it specified?
Localization functions
Which localization functions to use?
Localizing a string
Don't paramaterize your text domain
Localizing a string containing a parameter
Localizing a string including plurals
Localizing a string including notes for the translator
Don't include HTML markup in localization
Don't localize URLs
Localizing a string including line breaks
Load plugin translations

MDGP “October 2019” Release Feature of the Day: Long Description available for Payables Transactions

Microsoft Dynamics GPThe Inside Microsoft Dynamics GP blog has started a series Feature of the Day posts for Microsoft Dynamics GP “October 2019” Release on which I am following and adding commentary. The index for this series of posts is .

The eighth Feature of the Day is Long Description available for Payables Transactions. You can now enter a long description field for Payables Transactions once the option in Payables Setup, Enable Long Description in Payables Transaction Entry, has been enabled:

Payables Management Setup

Continue reading “MDGP “October 2019” Release Feature of the Day: Long Description available for Payables Transactions”

Internationalizing a ClassicPress plugin: Localizing a string including line breaks

ClassicPress PluginsThis post is part of the sub-series on Internationalizing a ClassicPress plugin which is part of the Internationalizing a ClassicPress plugin series.

Internationalization of a plugin is firly straightforward, but there is one gotcha with regards to line breaks in translatable strings to avoid.

The gettext libraries used for internationalizing a plugin do not work well with \r (ASCII code 13) so \n (ASCII code 10) should be used instead.

Translating a ClassicPress plugin

Internationalizing a ClassicPress plugin
How does internationalization work?
What is a Text Domain and how is it specified?
Localization functions
Which localization functions to use?
Localizing a string
Don't paramaterize your text domain
Localizing a string containing a parameter
Localizing a string including plurals
Localizing a string including notes for the translator
Don't include HTML markup in localization
Don't localize URLs
Localizing a string including line breaks
Load plugin translations

MDGP “October 2019” Release Feature of the Day: Add Doc Attach to Bank Reconciliation

Microsoft Dynamics GPThe Inside Microsoft Dynamics GP blog has started a series Feature of the Day posts for Microsoft Dynamics GP “October 2019” Release on which I am following and adding commentary. The index for this series of posts is .

The seventh Feature of the Day is add Document Attachments to Bank Reconciliation. Document Attachment functionality has been added to Bank Reconciliation. Specifically, you can attach, view, edit documents in Bank Deposit Entry, Bank Transaction Entry, Bank Deposit Inquiry Zoom and Bank Transaction Inquiry Zoom.

You can also attach images, text files or assign attributes to the attachments to further describe them.

Bank Deposit Entry

Continue reading “MDGP “October 2019” Release Feature of the Day: Add Doc Attach to Bank Reconciliation”