diff --git a/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.admin.inc b/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.admin.inc index b00d15f59a..df820a9b02 100644 --- a/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.admin.inc +++ b/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.admin.inc @@ -111,7 +111,11 @@ function boinctranslate_admin_settings(&$form_state) { for translating strings on this site (one resource string per line). Resources will be imported in the order they are given, so translations from the resources at the top of the list will be overridden - by any matching translations found in resources further down the list.'), + by any matching translations found in resources further down the list. +
+ NOTE: The first resource listed here is considered the primary resource + for project-specific translations and will be updated by the "Update + project-specific resources" button below!'), ); $form['transifex']['buttons']['submit'] = array( '#type' => 'submit', @@ -209,6 +213,11 @@ function boinctranslate_admin_settings_validate($form, &$form_state) { t('At least one BOINC Transifex project resource is required.') ); } + if (!$values['boinc_translate_transifex_project_resources']) { + form_set_error('boinc_translate_transifex_project_resources', + t('At least one project-specific Transifex resource is required.') + ); + } $username = $values['boinc_translate_transifex_user']; $password = ($values['boinc_translate_transifex_pass']) ? $values['boinc_translate_transifex_pass'] : variable_get('boinc_translate_transifex_pass', ''); diff --git a/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.module b/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.module index 730bcfdc70..e906d2a88c 100644 --- a/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.module +++ b/drupal/sites/default/boinc/modules/boinctranslate/boinctranslate.module @@ -385,15 +385,21 @@ function boinctranslate_export_translations() { $project_name = variable_get( 'boinc_translate_transifex_project_name', '' ); + // Get resource names from local config + $resource_config = (variable_get( + 'boinc_translate_transifex_project_resources', '' + )); + $resource_names = boinctranslate_parse_resources($resource_config); + $primary_resource = reset($resource_names); - if ($project_name) { + if ($project_name AND $primary_resource) { // Create or update the translation source, if needed $source_exists = FALSE; $path = "project/{$project_name}/resources"; $resources = boinctranslate_transifex_request($path); if ($resources AND is_array($resources)) { foreach ($resources as $resource) { - if ($resource['slug'] == 'drupal-project') { + if ($resource['slug'] == $primary_resource) { $source_exists = TRUE; break; } @@ -402,7 +408,7 @@ function boinctranslate_export_translations() { // Create the source $path = "project/{$project_name}/resources"; $post = array( - 'slug' => 'drupal-project', + 'slug' => $primary_resource, 'name' => 'Drupal-Project', 'i18n_type' => 'PO', 'category' => 'Drupal', @@ -412,7 +418,7 @@ function boinctranslate_export_translations() { } else { // Update the source - $path = "project/{$project_name}/resource/drupal-project/content"; + $path = "project/{$project_name}/resource/{$primary_resource}/content"; $post = array( 'content' => boinctranslate_get_po('en', 'project') ); @@ -428,21 +434,6 @@ function boinctranslate_export_translations() { else { drupal_set_message('Established new translation resource at Transifex'); } - // Ensure this exported project resource is in the config - $resource_config = (variable_get( - 'boinc_translate_transifex_project_resources', '' - )); - $resource_names = boinctranslate_parse_resources($resource_config); - if (!in_array('drupal-project', $resource_names)) { - $resource_config .= "\n" . 'drupal-project'; - variable_set( - 'boinc_translate_transifex_project_resources', - $resource_config - ); - drupal_set_message( - 'Added drupal-project to Project-specific resources' - ); - } // Try to export translations for all enabled languages foreach ($enabled_languages as $langcode => $language_name) { if ($langcode == 'en') { @@ -450,7 +441,7 @@ function boinctranslate_export_translations() { } $po_file = boinctranslate_get_po($langcode, 'project'); if ($po_file) { - $path = "project/{$project_name}/resource/drupal-project/translation/{$langcode}"; + $path = "project/{$project_name}/resource/{$primary_resource}/translation/{$langcode}"; $post = array( 'content' => $po_file, );