Przeglądaj źródła

More i18n-friendly format for footer in list of files (no string composition)

Conflicts FIXED:
	res/values/strings.xml
David A. Velasco 10 lat temu
rodzic
commit
69a5b6f25d

+ 12 - 6
res/values/strings.xml

@@ -72,12 +72,8 @@
     <string name="uploader_info_uploading">Uploading</string>
     <string name="file_list_seconds_ago">seconds ago</string>
     <string name="file_list_empty">Nothing in here. Upload something!</string>
-    <string name="file_list_loading">Loading...</string>
+    <string name="file_list_loading">Loading&#8230;</string>
     <string name="local_file_list_empty">There are no files in this folder.</string>
-    <string name="file_list_folder">folder</string>
-    <string name="file_list_folders">folders</string>
-    <string name="file_list_file">file</string>
-    <string name="file_list_files">files</string>
     <string name="filedetails_select_file">Tap on a file to display additional information.</string>
     <string name="filedetails_size">Size:</string>
     <string name="filedetails_type">Type:</string>
@@ -301,7 +297,7 @@
 	<string name="network_error_connect_timeout_exception">An error occurred while waiting for the server, the operation couldn\'t have been done</string>
 	<string name="network_host_not_available">The operation couldn\'t be completed, server is unavailable</string>
 
-	<string name="empty"></string>
+	<string name="empty" />
 	
 	<string name="forbidden_permissions">You do not have permission %s</string>
 	<string name="forbidden_permissions_rename">to rename this file</string>
@@ -350,4 +346,14 @@
     <string name="common_error_out_memory">Not enough memory</string>
 
     <string name="username">Username</string>
+
+    <string name="file_list__footer__folder">1 folder</string>
+    <string name="file_list__footer__folders">%1$d folders</string>
+    <string name="file_list__footer__file">1 file</string>
+    <string name="file_list__footer__file_and_folder">1 file, 1 folder</string>
+    <string name="file_list__footer__file_and_folders">1 file, %1$d folders</string>
+    <string name="file_list__footer__files">%1$d files</string>
+    <string name="file_list__footer__files_and_folder">%1$d files, 1 folder</string>
+    <string name="file_list__footer__files_and_folders">%1$d files, %1$d folders</string>
+
 </resources>

+ 39 - 15
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -438,23 +438,47 @@ public class OCFileListFragment extends ExtendedListFragment {
     }
 
     private String generateFooterText(int filesCount, int foldersCount) {
-        String output = "";
-        if (filesCount > 0){
-            if (filesCount == 1) {
-                output = output + filesCount + " " + getResources().getString(R.string.file_list_file);
-            } else {
-                output = output + filesCount + " " + getResources().getString(R.string.file_list_files);
+        String output;
+        if (filesCount <= 0) {
+            if (foldersCount <= 0) {
+                output = "";
+
+            } else if (foldersCount == 1) {
+                output = getResources().getString(R.string.file_list__footer__folder);
+
+            } else { // foldersCount > 1
+                output = getResources().getString(R.string.file_list__footer__folders);
+                String.format(output, foldersCount);
+
             }
-        }
-        if (foldersCount > 0 && filesCount > 0){
-            output = output + ", ";
-        }
-        if (foldersCount == 1) {
-            output = output + foldersCount + " " + getResources().getString(R.string.file_list_folder);
-        } else if (foldersCount > 1) {
-            output = output + foldersCount + " " + getResources().getString(R.string.file_list_folders);
-        }
 
+        } else if (filesCount == 1) {
+            if (foldersCount <= 0) {
+                output = getResources().getString(R.string.file_list__footer__file);
+
+            } else if (foldersCount == 1) {
+                output = getResources().getString(R.string.file_list__footer__file_and_folder);
+
+            } else { // foldersCount > 1
+                output = getResources().getString(R.string.file_list__footer__file_and_folders);
+                String.format(output, foldersCount);
+
+            }
+        } else {    // filesCount > 1
+            if (foldersCount <= 0) {
+                output = getResources().getString(R.string.file_list__footer__files);
+                String.format(output, filesCount);
+
+            } else if (foldersCount == 1) {
+                output = getResources().getString(R.string.file_list__footer__files_and_folder);
+                String.format(output, filesCount);
+
+            } else { // foldersCount > 1
+                output = getResources().getString(R.string.file_list__footer__files_and_folders);
+                String.format(output, filesCount, foldersCount);
+
+            }
+        }
         return output;
     }