Skip to content

Stats-ja

Latest

Choose a tag to compare

@terasakisatoshi terasakisatoshi released this 02 Jun 11:48
#=
概要: docstring を日本語(:ja) に翻訳する
使い方: 事前にOpenAI API Key を取得してその値を環境変数 OPENAI_API_KEY をセットしておくこと
このスクリプトを cache.jl とすれば下記のように実行する

julia -t 64 cache.jl

下記のディレクトリに翻訳結果が溜まっていく.
機械翻訳に不満があれば対応する ja.md を修正すれば良い.

~/.julia/scratchspaces/d404e13b-1f8e-41a5-a26a-0b758a0c6c97/translation 
=#

using DocstringTranslation
@switchlang! :ja

using Pkg; Pkg.activate(temp=true)

using Pkg; Pkg.add("ProgressMeter")

using Pkg; Pkg.add("DifferentialEquations")
using Pkg; Pkg.add("Plots")
using Pkg; Pkg.add("SpecialFunctions")
using Pkg; Pkg.add("Distributions")
using Pkg; Pkg.add("StatsBase")
using Pkg; Pkg.add("StatsPlots")
using Pkg; Pkg.add("StatsFuns")

using ProgressMeter: ProgressMeter

# 標準ライブラリの docstring を翻訳する
for (i, _stdlib) in enumerate(vcat(["Base", "Core"], readdir(Sys.STDLIB)))
    stdlib = Symbol(_stdlib)
    @info "Translating docstrings in $(stdlib)"
    @eval begin
        import $(stdlib)
        p = ProgressMeter.Progress(length(collect(names($(stdlib)))))
        Base.Threads.@threads for n in names($(stdlib))
            (Base.Docs.doc)((Base.Docs.Binding)($(stdlib), n))
            ProgressMeter.next!(p)
        end
    end
end

packages = [
    :DifferentialEquations, 
    :Plots, 
    :SpecialFunctions, 
    :Distributions,
    :StatsBase,
    :StatsPlots,
    :StatsFuns,
]

# サードパーティライブラリの docstring を翻訳する
for pkg in packages
    @info "Translating docstrings in $(pkg)"
    @eval begin
        import $(pkg)
        p = ProgressMeter.Progress(length(collect(names($(pkg)))))
        Base.Threads.@threads for n in names($(pkg))
            (Base.Docs.doc)((Base.Docs.Binding)($(pkg), n))
            ProgressMeter.next!(p)
        end
    end
end