|
|
@ -1,20 +1,32 @@ |
|
|
|
require "pathname" |
|
|
|
|
|
|
|
BUILD_DIR = "build" |
|
|
|
TRANS_DIR = "trans" |
|
|
|
LOCALE_DIR = "locale" |
|
|
|
BUILD_DIR = Pathname("build") |
|
|
|
LOCALE_DIR = Pathname("trans") |
|
|
|
TRANS_DIR = Pathname("translate") |
|
|
|
PSEUDO_LANG = "ach" |
|
|
|
|
|
|
|
task :default => [:build_trans, "crowdin:upload", :build_site] |
|
|
|
CROWDIN_SNIPPET = <<EOS |
|
|
|
|
|
|
|
<script type="text/javascript"> |
|
|
|
var _jipt = []; |
|
|
|
_jipt.push(['project', 'plume-docs']); |
|
|
|
_jipt.push(['escape', function() { |
|
|
|
window.location.href = 'https://joinplu.me'; |
|
|
|
}]); |
|
|
|
</script> |
|
|
|
<script type="text/javascript" src="//cdn.crowdin.com/jipt/jipt.js"></script> |
|
|
|
EOS |
|
|
|
|
|
|
|
class Pathname |
|
|
|
alias to_str to_s |
|
|
|
end |
|
|
|
|
|
|
|
desc "Build site" |
|
|
|
multitask :build_site => [:build_base, "crowdin:download"] do |
|
|
|
Pathname.glob("#{LOCALE_DIR}/**/*.html").select(&:file?).each do |path| |
|
|
|
content = path.read |
|
|
|
content.sub! /<script type="text\/javascript" src="\/\/cdn.crowdin.com\/jipt\/jipt.js"><\/script>/, "" |
|
|
|
dest = Pathname(path.to_path.sub(LOCALE_DIR, BUILD_DIR).sub(TRANS_DIR, "")) |
|
|
|
$stderr.puts "copy #{path} -> #{dest}" |
|
|
|
task :build_site => [:build_base, "crowdin:download"] do |
|
|
|
LOCALE_DIR.glob("**/*.html").each do |html| |
|
|
|
dest = Pathname(html.to_path.sub(LOCALE_DIR, BUILD_DIR)) |
|
|
|
dest.parent.mkpath |
|
|
|
dest.write content |
|
|
|
copy html, dest |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
@ -22,15 +34,26 @@ task :build_base do |
|
|
|
sh "middleman", "build" |
|
|
|
end |
|
|
|
|
|
|
|
desc "Build translation sources" |
|
|
|
desc "Build site for translate.docs.joinplu.me" |
|
|
|
task :build_trans do |
|
|
|
env = {"CROWDIN" => "on"} |
|
|
|
sh env, "middleman", "build", "--build-dir", TRANS_DIR |
|
|
|
sh "middleman", "build", "--build-dir", TRANS_DIR |
|
|
|
|
|
|
|
(LOCALE_DIR/PSEUDO_LANG/"trans").glob("**/*.html").each do |html| |
|
|
|
doc = html.read |
|
|
|
doc.sub! "<head>", "<head>" + CROWDIN_SNIPPET |
|
|
|
dest = Pathname(html.to_path.sub(LOCALE_DIR/PSEUDO_LANG/"trans", TRANS_DIR)) |
|
|
|
$stderr.puts "#{html} -> #{dest}" |
|
|
|
dest.write doc |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
task :build_trans_src do |
|
|
|
sh "middleman", "build", "--build-dir", LOCALE_DIR |
|
|
|
end |
|
|
|
|
|
|
|
namespace :crowdin do |
|
|
|
desc "Download translations" |
|
|
|
task :download do |
|
|
|
task :download => :build_trans_src do |
|
|
|
sh "crowdin", "download" |
|
|
|
end |
|
|
|
|
|
|
@ -38,4 +61,8 @@ namespace :crowdin do |
|
|
|
task :upload do |
|
|
|
sh "crowdin", "upload", "sources" |
|
|
|
end |
|
|
|
|
|
|
|
task :download_pseudo do |
|
|
|
sh "crowdin", "download", "--pseudo" |
|
|
|
end |
|
|
|
end |