1
0

pull_locales.rb 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # Install transifex-ruby - https://rubygems.org/gems/transifex-ruby
  2. #
  3. # Create a file called pull_locales_login.rb.
  4. # Contents should be:
  5. #
  6. # Transifex.configure do |config|
  7. # config.username = 'transifex.username'
  8. # config.password = 'transifex.password'
  9. # end
  10. #
  11. # Update require_relative to point to this file.
  12. require 'transifex'
  13. require 'fileutils'
  14. require_relative '../stylish-chrome-bin/pull_locales_login'
  15. project_slug = 'stylish-for-chrome'
  16. transifex = Transifex::Client.new
  17. project = transifex.project(project_slug)
  18. project.languages.each do |language|
  19. code = language.language_code
  20. puts "Getting locale #{code}"
  21. dir_name = "../_locales/#{code}"
  22. Dir.mkdir(dir_name) if !Dir.exist?(dir_name)
  23. has_content = false
  24. project.resources.each do |resource|
  25. c = resource.translation(code).content
  26. file_name = "#{dir_name}/#{resource.name}"
  27. begin
  28. completed = resource.stats(code).completed
  29. rescue Transifex::NotFound
  30. puts "#{code} not found."
  31. next
  32. end
  33. has_content ||= completed != "0%"
  34. puts "Writing resource #{file_name}, #{completed} complete."
  35. File.open(file_name, 'w') { |file| file.write(c) }
  36. end
  37. if !has_content
  38. puts "Locale #{code} has no content, deleting."
  39. FileUtils.rm_rf(dir_name)
  40. end
  41. end