Babelish icon indicating copy to clipboard operation
Babelish copied to clipboard

Apostrophe Issue

Open ExPl0siF opened this issue 4 years ago • 1 comments

First thank you for your project, which is really helpful and time economiser. I have french localization inside my CSV file, and when I just replace the file inside my Android Studio Project it gave me the error: AAPT: error: unescaped apostrophe in string. So after looking, I have to put a backslash before every apostrophe in my translation (') could you please add it at the "compilation/parsing" time ? Only for csv2android :)

Thank you in advance,

ExPl0siF avatar May 22 '20 07:05 ExPl0siF

we have a workaround:

csv2android.rb:

require 'uri'
module Babelish
 class CSV2Android < Csv2Base
 attr_accessor :file_path
 def initialize(filename, langs, args = {})
 super(filename, langs, args)
 @file_path = args[:output_dir].to_s
 end
 def language_filepaths(language)
 require 'pathname'
 filepath = Pathname.new(@file_path) + "values-#{language.code}" + "strings.xml"
 return filepath ? [filepath] : []
 end
 def process_value(row_value, default_value)
 value = super(row_value, default_value)
 value.gsub!(/'/, "'" => "\\'") # escape single quote only for Android
 value.gsub!(/&/, "&" => '&amp;')
 # if the value begins and ends with a quote we must leave them unescaped
 if value.size > 4 && value[0, 2] == "\\\"" && value[value.size - 2, value.size] == "\\\""
 value[0, 2] = "\""
 value[value.size - 2, value.size] = "\""
 end
 value.to_utf8
 end
 def get_row_format(row_key, row_value, comment = nil, indentation = 0)
 entry = comment.to_s.empty? ? "" : "\n\t<!-- #{comment} -->\n"
 entry + "\t<string name=\"#{row_key}\">#{row_value}</string>\n"
 end
 def hash_to_output(content = {})
 output = ''
 if content && content.size > 0
 output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
 output += "<resources>\n"
 content.each do |key, value|
 comment = @comments[key]
 output += get_row_format(key, value, comment)
 end
 output += "</resources>\n"
 end
 return output
 end
 def extension
 "xml"
 end
 end
end

I hope to find some time and prepare a pull request these days...

falkorichter avatar Jun 23 '20 07:06 falkorichter