Index: l10n_community/l10n_community.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/l10n_server/l10n_community/Attic/l10n_community.module,v
retrieving revision 1.1.2.23.2.15
diff -u -p -r1.1.2.23.2.15 l10n_community.module
--- l10n_community/l10n_community.module	29 Dec 2008 15:26:18 -0000	1.1.2.23.2.15
+++ l10n_community/l10n_community.module	29 Dec 2008 15:58:21 -0000
@@ -280,7 +280,7 @@ function l10n_community_menu() {
  * Menu loader function for %l10n_community_language to validate language code.
  */
 function l10n_community_language_load($langcode) {
-  if (($languages = l10n_community_get_languages('name')) && isset($languages[$langcode])) {
+  if (($languages = l10n_community_get_languages()) && isset($languages[$langcode]) && !empty($languages[$langcode]->plurals)) {
     return $langcode;
   }
   return FALSE;
Index: l10n_community/pages.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/l10n_server/l10n_community/Attic/pages.inc,v
retrieving revision 1.1.2.20.2.4
diff -u -p -r1.1.2.20.2.4 pages.inc
--- l10n_community/pages.inc	26 Nov 2008 12:17:56 -0000	1.1.2.20.2.4
+++ l10n_community/pages.inc	29 Dec 2008 15:58:21 -0000
@@ -14,7 +14,7 @@
 function l10n_community_explore_languages() {
   
   // Checking whether we have languages and strings.
-  if (!$languages = l10n_community_get_languages('name')) {
+  if (!$languages = l10n_community_get_languages()) {
     drupal_set_message(t('No languages to list.'), 'error');
     return '';
   }
@@ -33,12 +33,20 @@ function l10n_community_explore_language
   $string_counts = l10n_community_get_string_count('languages');
   foreach ($languages as $langcode => $language) {
     $perm = l10n_community_get_permission($langcode);
-    $table[] = array_merge(
-      array(
-        array('data' => l($language .' ('. $langcode .')', 'translate/languages/'. $langcode), 'class' => 'rowhead'),
-      ),
-      isset($string_counts[$langcode]) ? theme('l10n_community_progress_columns', $num_source, $string_counts[$langcode][0], $string_counts[$langcode][1]) : theme('l10n_community_progress_columns', $num_source, 0, 0)
-    );
+    if (empty($language->plurals)) {
+      $table[] = array(
+        array('data' => $language->name .' ('. $langcode .')', 'class' => 'rowhead'),
+        array('data' => t('Uninitialized plural formula. Please <a href="@import-url">import a valid interface translation</a> for Drupal in this language.', array('@import-url' => url('admin/build/translate/import'))), 'colspan' => '3', 'class' => 'error')
+      );
+    }
+    else {
+      $table[] = array_merge(
+        array(
+          array('data' => l($language->name .' ('. $langcode .')', 'translate/languages/'. $langcode), 'class' => 'rowhead'),
+        ),
+        isset($string_counts[$langcode]) ? theme('l10n_community_progress_columns', $num_source, $string_counts[$langcode][0], $string_counts[$langcode][1]) : theme('l10n_community_progress_columns', $num_source, 0, 0)
+      );
+    }
   }
   $header = theme('l10n_community_progress_headers', t('Language'));
   return theme('l10n_community_table', $header, $table);
@@ -203,7 +211,7 @@ function l10n_community_overview_project
   }
   drupal_set_title(t('@project project translations', array('@project' => drupal_get_title())));
   
-  if (!$languages = l10n_community_get_languages('name')) {
+  if (!$languages = l10n_community_get_languages()) {
     drupal_set_message(t('No languages to list.'), 'error');
     return '';
   }
@@ -221,17 +229,25 @@ function l10n_community_overview_project
   $table = array();
   foreach ($languages as $langcode => $language) {
     $perm = l10n_community_get_permission($langcode);
-    $table[] = array_merge(
-      array(
-        array('data' => l($language .' ('. $langcode .')', 'translate/languages/'. $langcode .'/view', array(), 'project='. $uri), 'class' => 'rowhead'),
-      ),
-      theme(
-        'l10n_community_progress_columns',
-        $num_source,
-        !empty($string_counts[$langcode][0]) ? $string_counts[$langcode][0] : 0,
-        !empty($string_counts[$langcode][1]) ? $string_counts[$langcode][1] : 0
-      )
-    );
+    if (empty($language->plurals)) {
+      $table[] = array(
+        array('data' => $language->name .' ('. $langcode .')', 'class' => 'rowhead'),
+        array('data' => t('Uninitialized plural formula. Please <a href="@import-url">import a valid interface translation</a> for Drupal in this language.', array('@import-url' => url('admin/build/translate/import'))), 'colspan' => '3', 'class' => 'error')
+      );
+    }
+    else {
+      $table[] = array_merge(
+        array(
+          array('data' => l($language->name .' ('. $langcode .')', 'translate/languages/'. $langcode .'/view', array(), 'project='. $uri), 'class' => 'rowhead'),
+        ),
+        theme(
+          'l10n_community_progress_columns',
+          $num_source,
+          !empty($string_counts[$langcode][0]) ? $string_counts[$langcode][0] : 0,
+          !empty($string_counts[$langcode][1]) ? $string_counts[$langcode][1] : 0
+        )
+      );
+    }
   }
   $block['content'] = theme(
     'table',
Index: l10n_community/welcome.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/l10n_server/l10n_community/Attic/welcome.inc,v
retrieving revision 1.1.2.7.2.2
diff -u -p -r1.1.2.7.2.2 welcome.inc
--- l10n_community/welcome.inc	24 Oct 2008 18:04:28 -0000	1.1.2.7.2.2
+++ l10n_community/welcome.inc	29 Dec 2008 15:58:21 -0000
@@ -87,34 +87,42 @@ function l10n_community_welcome_page() {
 
 function l10n_community_pick_go() {
   $form = array();
-  $languages = l10n_community_get_languages('name');
+  $languages = l10n_community_get_languages();
   $projects = l10n_community_get_projects();
   
-  if (!count($languages) || !count($projects)) {
-    $form['dummy'] = array('#type' => 'markup', '#value' => t('No languages defined or no projects scanned yet.'));
-    return $form;
+  // Drop languages without a plural formula from the options.
+  $language_list = array();
+  foreach ($languages as $langcode => $language) {
+    if (!empty($language->plurals)) {
+      $language_list[$langcode] = $language->name;
+    }
   }
 
-  if (count($languages) > 1) {
+  if (!count($language_list) || !count($projects)) {
+    $form['dummy'] = array('#type' => 'markup', '#value' => t('No languages with plural formulas defined or no projects scanned yet.'));
+    return $form;
+  }
+  
+  if (count($language_list) > 1) {
     // If more then one language.
     $form['langcode'] = array(
       // For three or less languages, display radio buttons, select otherwise.
-      '#type' => (count($languages) <= 3) ? 'radios' : 'select',
+      '#type' => (count($language_list) <= 3) ? 'radios' : 'select',
       '#title' => t('Pick a language'),
-      '#options' => array('' => t('All')) + l10n_community_get_languages('name'),
+      '#options' => array('' => t('All')) + $language_list,
       '#description' => t('Alternatively you can <a href="@explore">explore languages</a>.', array('@explore' => url('translate/languages')))
     );
   }
   else {
     // Only one language, store as form value.
-    list($language_code, $language_name) = each($languages);
+    list($language_code, $language_name) = each($language_list);
     $form['langcode'] = array(
       '#type' => 'value',
       '#value' => $language_code
     );
   }
   $form['project'] = array(
-    '#title' => (count($languages) > 1) ? t('And/or pick a project') : t('Pick a project for @language translation', array('@language' => $language_name)),
+    '#title' => (count($language_list) > 1) ? t('And/or pick a project') : t('Pick a project for @language translation', array('@language' => $language_name)),
     '#description' => t('Alternatively you can <a href="@explore">explore projects</a>.', array('@explore' => url('translate/projects')))
   );
   if (($count = count($projects)) <= 30) {
