這幾天在研究持續集成,發現了PHPCI這個使用PHP實現的持續集成工具,挺好玩的,發現它沒有中文語言,順手就漢化了,如今分享出來,但願哪天有人的用上。php
<?php /** * PHPCI - Continuous Integration for PHP * * @copyright Copyright 2014, Block 8 Limited. * @license https://github.com/Block8/PHPCI/blob/master/LICENSE.md * @link https://www.phptesting.org/ */ $strings = array( 'language_name' => '簡體中文', 'language' => '語言選擇', // Log in: 'log_in_to_phpci' => '登陸 PHPCI', 'login_error' => '郵箱或密碼錯誤', 'forgotten_password_link' => '忘記密碼?', 'reset_emailed' => '已發送重置密碼郵件.', 'reset_header' => '<strong>不用擔憂!</strong><br>只須要輸入您的郵箱地址,咱們將會給您的郵箱發送含有重置密碼連接的郵件。', 'reset_email_address' => '輸入您的郵箱地址:', 'reset_send_email' => '郵件重設密碼', 'reset_enter_password' => '請輸入新密碼', 'reset_new_password' => '新密碼:', 'reset_change_password' => '更改密碼', 'reset_no_user_exists' => '不存該該郵箱用戶,請檢查後重試!', 'reset_email_body' => '您好 %s, 您收到這封郵件,是由於您或者別人發起了來自PHPCI的密碼重置請求。 若是確實是您發起的,請點擊連接去重置您的密碼:%ssession/reset-password/%d/%s 不然,請忽視這封郵件,這不會發生任何事情。 多謝, PHPCI', 'reset_email_title' => '給 %s 來自 PHPCI 的密碼重置郵件', 'reset_invalid' => '密碼重置請求失敗!', 'email_address' => '郵箱地址', 'password' => '密碼', 'log_in' => '登陸', // Top Nav 'toggle_navigation' => '導航切換', 'n_builds_pending' => '%d 等待構建', 'n_builds_running' => '%d 正在構建', 'edit_profile' => '編輯資料', 'sign_out' => '註銷', 'branch_x' => '分支: %s', 'created_x' => '建立於: %s', 'started_x' => '開始於: %s', // Sidebar 'hello_name' => '您好, %s', 'dashboard' => '儀表盤', 'admin_options' => '管理選項', 'add_project' => '新增項目', 'settings' => '設置', 'manage_users' => '用戶管理', 'plugins' => '插件', 'view' => '查看', 'build_now' => '當即構建', 'edit_project' => '編輯項目', 'delete_project' => '刪除項目', // Project Summary: 'no_builds_yet' => '沒有任何構建', 'x_of_x_failed' => '%d 的最後一個 %d 構建失敗!', 'x_of_x_failed_short' => '%d / %d 失敗。', 'last_successful_build' => ' 最後一次構建成功的是 %s.', 'never_built_successfully' => ' 該項目構建歷來沒有成功過!', 'all_builds_passed' => '構建記錄中 %d 次構建經過。', 'all_builds_passed_short' => '%d / %d 經過。', 'last_failed_build' => ' 最近一次構建失敗的是 %s。', 'never_failed_build' => ' 該項目構建從未失敗過。', 'view_project' => '查看項目', // Timeline: 'latest_builds' => '最近構建', 'pending' => '等待中', 'running' => '構建中', 'success' => '成功', 'successful' => '成功', 'failed' => '失敗', 'manual_build' => 'Manual Build', // Add/Edit Project: 'new_project' => '新項目', 'project_x_not_found' => '項目 ID %d 不存在。', 'project_details' => '項目詳情', 'public_key_help' => '爲了幫助您更簡單的開始項目構建,咱們生成了如下 SSH key 對用於該項目。要使用它,請添加如下公鑰 「deploy keys」 至您選擇的源代碼託管平臺', 'select_repository_type' => '選擇倉庫類型...', 'github' => 'GitHub', 'bitbucket' => 'Bitbucket', 'gitlab' => 'GitLab', 'remote' => 'Remote URL', 'local' => 'Local Path', 'hg' => 'Mercurial', 'svn' => 'Subversion', 'where_hosted' => '您的代碼託管在?', 'choose_github' => '選擇一個 GitHub 倉庫:', 'repo_name' => '倉庫名稱 / URL (本地) or Path (本地)', 'project_title' => '項目標題', 'project_private_key' => '訪問倉庫私有祕鑰 (本地或公共倉庫可爲空)', 'build_config' => '該項目 PHPCI 構建配置文件 (若是您沒法在該項目倉庫建立 phpci.yml 文件)', 'default_branch' => '默認分支名稱', 'allow_public_status' => '啓用此項目的公共狀態頁和圖像?', 'archived' => '歸檔', 'archived_menu' => '歸檔', 'save_project' => '保存項目', 'error_mercurial' => 'Mercurial 倉庫 URL 必須以 http:// or https:// 開始', 'error_remote' => '倉庫 URL 必須以 git://, http:// or https:// 開始', 'error_gitlab' => 'GitLab 倉庫名稱必須符合 "user@domain.tld:owner/repo.git" 格式', 'error_github' => '倉庫名稱必須符合 "owner/repo" 格式', 'error_bitbucket' => '倉庫名稱必須符合 "owner/repo" 格式', 'error_path' => '您制定的路徑不存在', // View Project: 'all_branches' => 'All Branches', 'builds' => 'Builds', 'id' => 'ID', 'date' => '日期', 'project' => '項目', 'commit' => '提交', 'branch' => '分支', 'status' => '狀態', 'prev_link' => '« 上一個', 'next_link' => '下一個 »', 'public_key' => '公共祕鑰', 'delete_build' => '刪除構建', 'webhooks' => 'Webhooks', 'webhooks_help_github' => '要想當您的倉庫由新的提交推送時自動構建,請在您的Github倉庫的 <a href="https://github.com/%s/settings/hooks">Webhooks and Services</a> 將該URL添加至新增 "Webhook" 中。', 'webhooks_help_gitlab' => '要想當您的倉庫由新的提交推送時自動構建,請在您的GitLab倉庫的 "WebHook URL" 添加該URL。', 'webhooks_help_bitbucket' => '要想當您的倉庫由新的提交推送時自動構建,請在您的GitLab倉庫的 <a href="https://bitbucket.org/%s/admin/services"> Services</a> 將該URL添加成 「POST服務」。', // View Build 'errors' => 'Errors', 'information' => 'Information', 'build_x_not_found' => '構建 ID %d 不存在。', 'build_n' => 'Build %d', 'rebuild_now' => '從新構建', 'committed_by_x' => '由 %s 提交', 'commit_id_x' => '提交: %s', 'chart_display' => '構建一旦完成該圖表將會顯示', 'build' => 'Build', 'lines' => 'Lines', 'comment_lines' => 'Comment Lines', 'noncomment_lines' => 'Non-Comment Lines', 'logical_lines' => 'Logical Lines', 'lines_of_code' => 'Lines of Code', 'build_log' => 'Build Log', 'quality_trend' => 'Quality Trend', 'codeception_errors' => 'Codeception Errors', 'phpmd_warnings' => 'PHPMD Warnings', 'phpcs_warnings' => 'PHPCS Warnings', 'phpcs_errors' => 'PHPCS Errors', 'phplint_errors' => 'Lint Errors', 'phpunit_errors' => 'PHPUnit Errors', 'phpdoccheck_warnings' => 'Missing Docblocks', 'issues' => 'Issues', 'codeception' => 'Codeception', 'phpcpd' => 'PHP Copy/Paste Detector', 'phpcs' => 'PHP Code Sniffer', 'phpdoccheck' => 'Missing Docblocks', 'phpmd' => 'PHP Mess Detector', 'phpspec' => 'PHP Spec', 'phpunit' => 'PHP Unit', 'technical_debt' => 'Technical Debt', 'behat' => 'Behat', 'codeception_feature' => 'Feature', 'codeception_suite' => 'Suite', 'codeception_time' => 'Time', 'codeception_synopsis' => '<strong>%1$d</strong> 測試進行了 <strong>%2$f</strong> 秒. <strong>%3$d</strong> 失敗。', 'file' => 'File', 'line' => 'Line', 'class' => 'Class', 'method' => 'Method', 'message' => 'Message', 'start' => 'Start', 'end' => 'End', 'from' => 'From', 'to' => 'To', 'result' => 'Result', 'ok' => 'OK', 'took_n_seconds' => 'Took %d seconds', 'build_created' => 'Build Created', 'build_started' => 'Build Started', 'build_finished' => 'Build Finished', 'test_message' => 'Message', 'test_no_message' => 'No message', 'test_success' => 'Successful: %d', 'test_fail' => 'Failures: %d', 'test_skipped' => 'Skipped: %d', 'test_error' => 'Errors: %d', 'test_todo' => 'Todos: %d', 'test_total' => '%d test(s)', // Users 'name' => '名稱', 'password_change' => '密碼 (若是要修改密碼請填入新密碼,不然留空空)', 'save' => '保存 »', 'update_your_details' => '更新您的我的信息', 'your_details_updated' => '您的信息已經更新。', 'add_user' => '新增用戶', 'is_admin' => '是否設爲管理員?', 'yes' => '是', 'no' => '否', 'edit' => '編輯', 'edit_user' => '編輯用戶', 'delete_user' => '刪除用戶', 'user_n_not_found' => '用戶 ID %d 不存在。', 'is_user_admin' => '該用戶是否爲管理員', 'save_user' => '保存用戶', // Settings: 'settings_saved' => '您的設置已經保存。', 'settings_check_perms' => '權限不足,您的設置沒法保存, 請檢查 config.yml 文件.', 'settings_cannot_write' => 'PHPCI 沒法寫入 config.yml 文件, 在這個問題解決前設置可能沒法正常保存', 'settings_github_linked' => '您的 GitHub 帳戶已經鏈接。', 'settings_github_not_linked' => '您的 GitHub 沒法鏈接。', 'build_settings' => '構建設置', 'github_application' => 'GitHub Application', 'github_sign_in' => '在使用您的 GitHub 帳號以前, 您須要登陸 GitHub , 並容許 PHPCI 訪問您的帳戶。', 'github_phpci_linked' => 'PHPCI 成功鏈接到您的 GitHub 帳戶。', 'github_where_to_find' => '在哪裏能夠找到...', 'github_where_help' => '若是您想使用您本身的應用, 您能夠在<a href="https://github.com/settings/applications">applications</a> 的 setting 中 找到相關信息。', 'email_settings' => '郵箱設置', 'email_settings_help' => 'PHPCI在發送構建狀態的郵件以前,您須要配置您的SMTP設置以下。', 'application_id' => 'Application ID', 'application_secret' => 'Application Secret', 'smtp_server' => 'SMTP Server', 'smtp_port' => 'SMTP Port', 'smtp_username' => 'SMTP Username', 'smtp_password' => 'SMTP Password', 'from_email_address' => '郵件來自', 'default_notification_address' => '通知默認郵件', 'use_smtp_encryption' => 'SMTP 使用哪一種方式加密?', 'none' => 'None', 'ssl' => 'SSL', 'tls' => 'TLS', 'failed_after' => '構建失敗後從新構建間隔', '5_mins' => '5 分鐘', '15_mins' => '15 分鐘', '30_mins' => '30 分鐘', '1_hour' => '1 小時', '3_hours' => '3 小時', // Plugins 'cannot_update_composer' => '因爲 composer.json 文件不可寫 PHPCI 沒法爲您更新該文件, ', 'x_has_been_removed' => '%s 已經移除', 'x_has_been_added' => '%s 已經爲您添加至 composer.json , 當您下次執行 composer update 時相關庫將會安裝', 'enabled_plugins' => '已啓用插件', 'provided_by_package' => '來自', 'installed_packages' => '已安裝插件', 'suggested_packages' => '建議安裝插件', 'title' => '名稱', 'description' => '說明', 'version' => '版本', 'install' => '安裝 »', 'remove' => '移除 »', 'search_packagist_for_more' => '搜索獲取更多插件', 'search' => '搜索 »', // Summary plugin 'build-summary' => 'Summary', 'stage' => 'Stage', 'duration' => 'Duration', 'plugin' => 'Plugin', 'stage_setup' => 'Setup', 'stage_test' => 'Test', 'stage_complete' => 'Complete', 'stage_success' => 'Success', 'stage_failure' => 'Failure', 'stage_broken' => 'Broken', 'stage_fixed' => 'Fixed', // Installer 'installation_url' => 'PHPCI Installation URL', 'db_host' => 'Database Host', 'db_name' => 'Database Name', 'db_user' => 'Database Username', 'db_pass' => 'Database Password', 'admin_name' => 'Admin Name', 'admin_pass' => 'Admin Password', 'admin_email' => 'Admin Email Address', 'config_path' => 'Config File Path', 'install_phpci' => 'Install PHPCI', 'welcome_to_phpci' => 'Welcome to PHPCI', 'please_answer' => 'Please answer the following questions:', 'phpci_php_req' => 'PHPCI requires at least PHP 5.3.8 to function.', 'extension_required' => 'Extension required: %s', 'function_required' => 'PHPCI needs to be able to call the %s() function. Is it disabled in php.ini?', 'requirements_not_met' => 'PHPCI cannot be installed, as not all requirements are met. Please review the errors above before continuing.', 'must_be_valid_email' => 'Must be a valid email address.', 'must_be_valid_url' => 'Must be a valid URL.', 'enter_name' => 'Admin Name: ', 'enter_email' => 'Admin Email: ', 'enter_password' => 'Admin Password: ', 'enter_phpci_url' => 'Your PHPCI URL ("http://phpci.local" for example): ', 'enter_db_host' => 'Please enter your MySQL host [localhost]: ', 'enter_db_name' => 'Please enter your MySQL database name [phpci]: ', 'enter_db_user' => 'Please enter your MySQL username [phpci]: ', 'enter_db_pass' => 'Please enter your MySQL password: ', 'could_not_connect' => 'PHPCI could not connect to MySQL with the details provided. Please try again.', 'setting_up_db' => 'Setting up your database... ', 'user_created' => 'User account created!', 'failed_to_create' => 'PHPCI failed to create your admin account.', 'config_exists' => 'The PHPCI config file exists and is not empty.', 'update_instead' => 'If you were trying to update PHPCI, please use phpci:update instead.', // Update 'update_phpci' => 'Update the database to reflect modified models.', 'updating_phpci' => 'Updating PHPCI database: ', 'not_installed' => 'PHPCI does not appear to be installed.', 'install_instead' => 'Please install PHPCI via phpci:install instead.', // Poll Command 'poll_github' => 'Poll GitHub to check if we need to start a build.', 'no_token' => 'No GitHub token found', 'finding_projects' => 'Finding projects to poll', 'found_n_projects' => 'Found %d projects', 'last_commit_is' => 'Last commit to GitHub for %s is %s', 'adding_new_build' => 'Last commit is different to database, adding new build.', 'finished_processing_builds' => 'Finished processing builds.', // Create Admin 'create_admin_user' => 'Create an admin user', 'incorrect_format' => 'Incorrect format', // Create Build Command 'create_build_project' => 'Create a build for a project', 'project_id_argument' => 'A project ID', 'commit_id_option' => 'Commit ID to build', 'branch_name_option' => 'Branch to build', 'add_to_queue_failed' => 'Build created successfully, but failed to add to build queue. This usually happens when PHPCI is set to use a beanstalkd server that does not exist, or your beanstalkd server has stopped.', // Run Command 'run_all_pending' => 'Run all pending PHPCI builds.', 'finding_builds' => 'Finding builds to process', 'found_n_builds' => 'Found %d builds', 'skipping_build' => 'Skipping Build %d - Project build already in progress.', 'marked_as_failed' => 'Build %d marked as failed due to timeout.', // Builder 'missing_phpci_yml' => 'This project does not contain a phpci.yml file, or it is empty.', 'build_success' => 'BUILD SUCCESS', 'build_failed' => 'BUILD FAILED', 'removing_build' => 'Removing Build.', 'exception' => 'Exception: ', 'could_not_create_working' => 'Could not create a working copy.', 'working_copy_created' => 'Working copy created: %s', 'looking_for_binary' => 'Looking for binary: %s', 'found_in_path' => 'Found in %s: %s', 'running_plugin' => 'RUNNING PLUGIN: %s', 'plugin_success' => 'PLUGIN: SUCCESS', 'plugin_failed' => 'PLUGIN: FAILED', 'plugin_missing' => 'Plugin does not exist: %s', 'tap_version' => 'TapParser only supports TAP version 13', 'tap_error' => 'Invalid TAP string, number of tests does not match specified test count.', // Build Plugins: 'no_tests_performed' => 'No tests have been performed.', 'could_not_find' => 'Could not find %s', 'no_campfire_settings' => 'No connection parameters given for Campfire plugin', 'failed_to_wipe' => 'Failed to wipe existing directory %s before copy', 'passing_build' => 'Passing Build', 'failing_build' => 'Failing Build', 'log_output' => 'Log Output: ', 'n_emails_sent' => '%d emails sent.', 'n_emails_failed' => '%d emails failed to send.', 'unable_to_set_env' => 'Unable to set environment variable', 'tag_created' => 'Tag created by PHPCI: %s', 'x_built_at_x' => '%PROJECT_TITLE% built at %BUILD_URI%', 'hipchat_settings' => 'Please define room and authToken for hipchat_notify plugin', 'irc_settings' => 'You must configure a server, room and nick.', 'invalid_command' => 'Invalid command', 'import_file_key' => 'Import statement must contain a \'file\' key', 'cannot_open_import' => 'Cannot open SQL import file: %s', 'unable_to_execute' => 'Unable to execute SQL file', 'phar_internal_error' => 'Phar Plugin Internal Error', 'build_file_missing' => 'Specified build file does not exist.', 'property_file_missing' => 'Specified property file does not exist.', 'could_not_process_report' => 'Could not process the report generated by this tool.', 'shell_not_enabled' => 'The shell plugin is not enabled. Please enable it via config.yml.', // Error Levels: 'critical' => 'Critical', 'high' => 'High', 'normal' => 'Normal', 'low' => 'Low', // Plugins that generate errors: 'php_mess_detector' => 'PHP Mess Detector', 'php_code_sniffer' => 'PHP Code Sniffer', 'php_unit' => 'PHP Unit', 'php_cpd' => 'PHP Copy/Paste Detector', 'php_docblock_checker' => 'PHP Docblock Checker', 'behat' => 'Behat', 'technical_debt' => 'Technical Debt', );
最近也在研究系統架構,可能會寫一系列PHPCI的源碼解讀文章。git
個人博客地址:http://www.coloroud.comgithub