From 20bccfff3bdc5e0c5b7bee0295c3dedc1b13bcb6 Mon Sep 17 00:00:00 2001 From: Fernando <33039864+tuxslack@users.noreply.github.com> Date: Sun, 14 Sep 2025 01:19:08 -0300 Subject: [PATCH] Internationalization of xbps xbps-install - pt_BR * We still need to finish man xbps-install.1 for pt_BR. --- bin/xbps-install/main.c | 35 +- bin/xbps-install/question.c | 14 +- bin/xbps-install/state_cb.c | 58 +-- bin/xbps-install/transaction.c | 84 ++-- .../locale/pt_BR/LC_MESSAGES/xbps-install.mo | Bin 0 -> 9376 bytes .../locale/pt_BR/LC_MESSAGES/xbps-install.pot | 403 ++++++++++++++++++ .../usr/share/man/pt_BR/man1/xbps-install.1 | 295 +++++++++++++ bin/xbps-install/util.c | 9 +- 8 files changed, 821 insertions(+), 77 deletions(-) create mode 100644 bin/xbps-install/usr/share/locale/pt_BR/LC_MESSAGES/xbps-install.mo create mode 100644 bin/xbps-install/usr/share/locale/pt_BR/LC_MESSAGES/xbps-install.pot create mode 100644 bin/xbps-install/usr/share/man/pt_BR/man1/xbps-install.1 diff --git a/bin/xbps-install/main.c b/bin/xbps-install/main.c index 5a3656df2..962d37462 100644 --- a/bin/xbps-install/main.c +++ b/bin/xbps-install/main.c @@ -37,11 +37,18 @@ #include #include "defs.h" + +#include +#include +#define _(STRING) gettext(STRING) + + + static void __attribute__((noreturn)) usage(bool fail) { fprintf(stdout, - "Usage: xbps-install [OPTIONS] [PKGNAME...]\n\n" + _("Usage: xbps-install [OPTIONS] [PKGNAME...]\n\n" "OPTIONS\n" " -A, --automatic Set automatic installation mode\n" " -C, --config Path to confdir (xbps.d)\n" @@ -66,7 +73,7 @@ usage(bool fail) " -u, --update Update target package(s)\n" " -v, --verbose Verbose messages\n" " -y, --yes Assume yes to all questions\n" - " -V, --version Show XBPS version\n"); + " -V, --version Show XBPS version\n")); exit(fail ? EXIT_FAILURE : EXIT_SUCCESS); } @@ -76,7 +83,7 @@ unpack_progress_cb(const struct xbps_unpack_cb_data *xpd, void *cbdata UNUSED) if (xpd->entry == NULL || xpd->entry_total_count <= 0) return; - printf("%s: unpacked %sfile `%s' (%" PRIi64 " bytes)\n", + printf(_("%s: unpacked %sfile `%s' (%" PRIi64 " bytes)\n"), xpd->pkgver, xpd->entry_is_conf ? "configuration " : "", xpd->entry, xpd->entry_size); @@ -88,16 +95,21 @@ repo_import_key_cb(struct xbps_repo *repo, void *arg UNUSED, bool *done UNUSED) int rv; if ((rv = xbps_repo_key_import(repo)) != 0) - xbps_error_printf("Failed to import pubkey from %s: %s\n", + xbps_error_printf(_("Failed to import pubkey from %s: %s\n"), repo->uri, strerror(rv)); return rv; } + int main(int argc, char **argv) { + const char *shortopts = "AC:c:DdfhIiMnR:r:SuUVvy"; + + // Movido as declarações para o início + const struct option longopts[] = { { "automatic", no_argument, NULL, 'A' }, { "config", required_argument, NULL, 'C' }, @@ -122,6 +134,9 @@ main(int argc, char **argv) { "staging", no_argument, NULL, 2 }, { NULL, 0, NULL, 0 } }; + + + struct xbps_handle xh; struct xferstat xfer; const char *rootdir, *cachedir, *confdir; @@ -135,6 +150,14 @@ main(int argc, char **argv) memset(&xh, 0, sizeof(xh)); + +setlocale(LC_ALL, ""); +bindtextdomain("xbps-install", "/usr/share/locale"); +textdomain("xbps-install"); + + + + while ((c = getopt_long(argc, argv, shortopts, longopts, NULL)) != -1) { switch (c) { case 1: @@ -229,7 +252,7 @@ main(int argc, char **argv) xh.unpack_cb = unpack_progress_cb; if ((rv = xbps_init(&xh)) != 0) { - xbps_error_printf("Failed to initialize libxbps: %s\n", + xbps_error_printf(_("Failed to initialize libxbps: %s\n"), strerror(rv)); exit(EXIT_FAILURE); } @@ -250,7 +273,7 @@ main(int argc, char **argv) if (!(xh.flags & XBPS_FLAG_DOWNLOAD_ONLY) && !drun) { if ((rv = xbps_pkgdb_lock(&xh)) != 0) { - xbps_error_printf("Failed to lock the pkgdb: %s\n", strerror(rv)); + xbps_error_printf(_("Failed to lock the pkgdb: %s\n"), strerror(rv)); exit(rv); } } diff --git a/bin/xbps-install/question.c b/bin/xbps-install/question.c index 865649fff..5c0f24faa 100644 --- a/bin/xbps-install/question.c +++ b/bin/xbps-install/question.c @@ -33,6 +33,12 @@ #include "defs.h" + +#include +#include +#define _(STRING) gettext(STRING) + + #ifdef __clang__ #pragma clang diagnostic ignored "-Wformat-nonliteral" #endif @@ -45,14 +51,16 @@ question(bool preset, const char *fmt, va_list ap) vfprintf(stderr, fmt, ap); if (preset) - fputs(" [Y/n] ", stderr); + fputs(_(" [Y/n] "), stderr); else - fputs(" [y/N] ", stderr); + fputs(_(" [y/N] "), stderr); response = fgetc(stdin); if (response == '\n') rv = preset; - else if (response == 'y' || response == 'Y') + + // Apenas acrescente S/s como equivalentes + else if (response == 'y' || response == 'Y' || response == 's' || response == 'S') rv = true; else if (response == 'n' || response == 'N') rv = false; diff --git a/bin/xbps-install/state_cb.c b/bin/xbps-install/state_cb.c index e40ef654e..b7987715e 100644 --- a/bin/xbps-install/state_cb.c +++ b/bin/xbps-install/state_cb.c @@ -31,6 +31,10 @@ #include #include "defs.h" +#include +#include +#define _(STRING) gettext(STRING) + int state_cb(const struct xbps_state_cb_data *xscd, void *cbdata UNUSED) { @@ -48,25 +52,25 @@ state_cb(const struct xbps_state_cb_data *xscd, void *cbdata UNUSED) switch (xscd->state) { /* notifications */ case XBPS_STATE_TRANS_DOWNLOAD: - printf("\n[*] Downloading packages\n"); + printf(_("\n[*] Downloading packages\n")); break; case XBPS_STATE_TRANS_VERIFY: - printf("\n[*] Verifying package integrity\n"); + printf(_("\n[*] Verifying package integrity\n")); break; case XBPS_STATE_TRANS_FILES: - printf("\n[*] Collecting package files\n"); + printf(_("\n[*] Collecting package files\n")); break; case XBPS_STATE_TRANS_RUN: - printf("\n[*] Unpacking packages\n"); + printf(_("\n[*] Unpacking packages\n")); break; case XBPS_STATE_TRANS_CONFIGURE: - printf("\n[*] Configuring unpacked packages\n"); + printf(_("\n[*] Configuring unpacked packages\n")); break; case XBPS_STATE_PKGDB: - printf("[*] pkgdb upgrade in progress, please wait...\n"); + printf(_("[*] pkgdb upgrade in progress, please wait...\n")); break; case XBPS_STATE_REPOSYNC: - printf("[*] Updating repository `%s' ...\n", xscd->arg); + printf(_("[*] Updating repository `%s' ...\n"), xscd->arg); break; case XBPS_STATE_TRANS_ADDPKG: if (xscd->xhp->flags & XBPS_FLAG_VERBOSE) @@ -83,16 +87,16 @@ state_cb(const struct xbps_state_cb_data *xscd, void *cbdata UNUSED) printf("%s\n", xscd->desc); break; case XBPS_STATE_REMOVE: - printf("%s: removing ...\n", xscd->arg); + printf(_("%s: removing ...\n"), xscd->arg); break; case XBPS_STATE_CONFIGURE: - printf("%s: configuring ...\n", xscd->arg); + printf(_("%s: configuring ...\n"), xscd->arg); break; case XBPS_STATE_CONFIGURE_DONE: /* empty */ break; case XBPS_STATE_UNPACK: - printf("%s: unpacking ...\n", xscd->arg); + printf(_("%s: unpacking ...\n"), xscd->arg); break; case XBPS_STATE_INSTALL: case XBPS_STATE_DOWNLOAD: @@ -105,10 +109,10 @@ state_cb(const struct xbps_state_cb_data *xscd, void *cbdata UNUSED) newver = xbps_pkg_version(xscd->arg); pkgd = xbps_pkgdb_get_pkg(xscd->xhp, pkgname); xbps_dictionary_get_cstring_nocopy(pkgd, "pkgver", &instver); - printf("%s: updating to %s ...\n", instver, newver); + printf(_("%s: updating to %s ...\n"), instver, newver); if (slog) { - syslog(LOG_NOTICE, "%s: updating to %s ... " - "(rootdir: %s)\n", instver, newver, + syslog(LOG_NOTICE, _("%s: updating to %s ... " + "(rootdir: %s)\n"), instver, newver, xscd->xhp->rootdir); } break; @@ -123,37 +127,37 @@ state_cb(const struct xbps_state_cb_data *xscd, void *cbdata UNUSED) } break; case XBPS_STATE_INSTALL_DONE: - printf("%s: installed successfully.\n", xscd->arg); + printf(_("%s: installed successfully.\n"), xscd->arg); if (slog) { - syslog(LOG_NOTICE, "Installed `%s' successfully " - "(rootdir: %s).", xscd->arg, + syslog(LOG_NOTICE, _("Installed `%s' successfully " + "(rootdir: %s)."), xscd->arg, xscd->xhp->rootdir); } break; case XBPS_STATE_UPDATE_DONE: - printf("%s: updated successfully.\n", xscd->arg); + printf(_("%s: updated successfully.\n"), xscd->arg); if (slog) { - syslog(LOG_NOTICE, "Updated `%s' successfully " - "(rootdir: %s).", xscd->arg, + syslog(LOG_NOTICE, _("Updated `%s' successfully " + "(rootdir: %s)."), xscd->arg, xscd->xhp->rootdir); } break; case XBPS_STATE_REMOVE_DONE: - printf("%s: removed successfully.\n", xscd->arg); + printf(_("%s: removed successfully.\n"), xscd->arg); if (slog) { - syslog(LOG_NOTICE, "Removed `%s' successfully " - "(rootdir: %s).", xscd->arg, + syslog(LOG_NOTICE, _("Removed `%s' successfully " + "(rootdir: %s)."), xscd->arg, xscd->xhp->rootdir); } break; case XBPS_STATE_PKGDB_DONE: - printf("The pkgdb file has been upgraded successfully, please reexec " - "the command again.\n"); + printf(_("The pkgdb file has been upgraded successfully, please reexec " + "the command again.\n")); break; case XBPS_STATE_REPO_KEY_IMPORT: printf("%s\n", xscd->desc); - printf("Fingerprint: %s\n", xscd->arg); - rv = yesno("Do you want to import this public key?"); + printf(_("Fingerprint: %s\n"), xscd->arg); + rv = yesno(_("Do you want to import this public key?")); break; case XBPS_STATE_UNPACK_FILE_PRESERVED: printf("%s\n", xscd->desc); @@ -190,7 +194,7 @@ state_cb(const struct xbps_state_cb_data *xscd, void *cbdata UNUSED) if (xscd->desc) printf("%s\n", xscd->desc); else - xbps_dbg_printf("%s: unknown state %d\n", xscd->arg, xscd->state); + xbps_dbg_printf(_("%s: unknown state %d\n"), xscd->arg, xscd->state); break; } diff --git a/bin/xbps-install/transaction.c b/bin/xbps-install/transaction.c index 827286724..7ed6aa800 100644 --- a/bin/xbps-install/transaction.c +++ b/bin/xbps-install/transaction.c @@ -36,6 +36,12 @@ #include #include "defs.h" + +#include +#include +#define _(STRING) gettext(STRING) + + static void print_array(xbps_array_t a) { @@ -207,37 +213,37 @@ show_transaction_sizes(struct transaction *trans, int cols) * Show the list of packages and its action. */ if (trans->dl_pkgcnt) { - printf("%u package%s will be downloaded:\n", + printf(_("%u package%s will be downloaded:\n"), trans->dl_pkgcnt, trans->dl_pkgcnt == 1 ? "" : "s"); show_package_list(trans, XBPS_TRANS_DOWNLOAD, cols); printf("\n"); } if (trans->inst_pkgcnt) { - printf("%u package%s will be installed:\n", + printf(_("%u package%s will be installed:\n"), trans->inst_pkgcnt, trans->inst_pkgcnt == 1 ? "" : "s"); show_package_list(trans, XBPS_TRANS_INSTALL, cols); printf("\n"); } if (trans->up_pkgcnt) { - printf("%u package%s will be updated:\n", + printf(_("%u package%s will be updated:\n"), trans->up_pkgcnt, trans->up_pkgcnt == 1 ? "" : "s"); show_package_list(trans, XBPS_TRANS_UPDATE, cols); printf("\n"); } if (trans->cf_pkgcnt) { - printf("%u package%s will be configured:\n", + printf(_("%u package%s will be configured:\n"), trans->cf_pkgcnt, trans->cf_pkgcnt == 1 ? "" : "s"); show_package_list(trans, XBPS_TRANS_CONFIGURE, cols); printf("\n"); } if (trans->rm_pkgcnt) { - printf("%u package%s will be removed:\n", + printf(_("%u package%s will be removed:\n"), trans->rm_pkgcnt, trans->rm_pkgcnt == 1 ? "" : "s"); show_package_list(trans, XBPS_TRANS_REMOVE, cols); printf("\n"); } if (trans->hold_pkgcnt) { - printf("%u package%s are on hold:\n", + printf(_("%u package%s are on hold:\n"), trans->hold_pkgcnt, trans->hold_pkgcnt == 1 ? "" : "s"); show_package_list(trans, XBPS_TRANS_HOLD, cols); printf("\n"); @@ -260,7 +266,7 @@ show_transaction_sizes(struct transaction *trans, int cols) "%s\n", strerror(errno)); return -1; } - printf("Size to download: %6s\n", size); + printf(_("Size to download: %6s\n"), size); } if (instsize) { if (xbps_humanize_number(size, (int64_t)instsize) == -1) { @@ -268,7 +274,7 @@ show_transaction_sizes(struct transaction *trans, int cols) "%s\n", strerror(errno)); return -1; } - printf("Size required on disk: %6s\n", size); + printf(_("Size required on disk: %6s\n"), size); } if (rmsize) { if (xbps_humanize_number(size, (int64_t)rmsize) == -1) { @@ -276,7 +282,7 @@ show_transaction_sizes(struct transaction *trans, int cols) "%s\n", strerror(errno)); return -1; } - printf("Size freed on disk: %6s\n", size); + printf(_("Size freed on disk: %6s\n"), size); } if (disk_free_size) { if (xbps_humanize_number(size, (int64_t)disk_free_size) == -1) { @@ -284,7 +290,7 @@ show_transaction_sizes(struct transaction *trans, int cols) "%s\n", strerror(errno)); return -1; } - printf("Space available on disk: %6s\n", size); + printf(_("Space available on disk: %6s\n"), size); } printf("\n"); @@ -314,22 +320,22 @@ dist_upgrade(struct xbps_handle *xhp, unsigned int cols, bool yes, bool drun) rv = xbps_transaction_update_packages(xhp); if (rv == ENOENT) { - xbps_error_printf("No packages currently registered.\n"); + xbps_error_printf(_("No packages currently registered.\n")); return 0; } else if (rv == EBUSY) { if (drun) { rv = 0; } else { - xbps_error_printf("The 'xbps' package must be updated, please run `xbps-install -u xbps`\n"); + xbps_error_printf(_("The 'xbps' package must be updated, please run `xbps-install -u xbps`\n")); return rv; } } else if (rv == EEXIST) { return 0; } else if (rv == ENOTSUP) { - xbps_error_printf("No repositories currently registered!\n"); + xbps_error_printf(_("No repositories currently registered!\n")); return rv; } else if (rv != 0) { - xbps_error_printf("Unexpected error: %s\n", strerror(rv)); + xbps_error_printf(_("Unexpected error: %s\n"), strerror(rv)); return -1; } @@ -343,17 +349,17 @@ install_new_pkg(struct xbps_handle *xhp, const char *pkg, bool force) rv = xbps_transaction_install_pkg(xhp, pkg, force); if (rv == EEXIST) - xbps_error_printf("Package `%s' already installed.\n", pkg); + xbps_error_printf(_("Package `%s' already installed.\n"), pkg); else if (rv == ENOENT) - xbps_error_printf("Package '%s' not found in repository pool.\n", pkg); + xbps_error_printf(_("Package '%s' not found in repository pool.\n"), pkg); else if (rv == ENOTSUP) - xbps_error_printf("No repositories currently registered!\n"); + xbps_error_printf(_("No repositories currently registered!\n")); else if (rv == ENXIO) - xbps_error_printf("Package `%s' contains invalid dependencies, exiting.\n", pkg); + xbps_error_printf(_("Package `%s' contains invalid dependencies, exiting.\n"), pkg); else if (rv == EBUSY) - xbps_error_printf("The 'xbps' package must be updated, please run `xbps-install -u xbps`\n"); + xbps_error_printf(_("The 'xbps' package must be updated, please run `xbps-install -u xbps`\n")); else if (rv != 0) { - xbps_error_printf("Unexpected error: %s\n", strerror(rv)); + xbps_error_printf(_("Unexpected error: %s\n"), strerror(rv)); rv = -1; } return rv; @@ -366,19 +372,19 @@ update_pkg(struct xbps_handle *xhp, const char *pkg, bool force) rv = xbps_transaction_update_pkg(xhp, pkg, force); if (rv == EEXIST) - printf("Package '%s' is up to date.\n", pkg); + printf(_("Package '%s' is up to date.\n"), pkg); else if (rv == ENOENT) - xbps_error_printf("Package '%s' not found in repository pool.\n", pkg); + xbps_error_printf(_("Package '%s' not found in repository pool.\n"), pkg); else if (rv == ENODEV) - xbps_error_printf("Package '%s' not installed.\n", pkg); + xbps_error_printf(_("Package '%s' not installed.\n"), pkg); else if (rv == ENOTSUP) - xbps_error_printf("No repositories currently registered!\n"); + xbps_error_printf(_("No repositories currently registered!\n")); else if (rv == ENXIO) - xbps_error_printf("Package `%s' contains invalid dependencies, exiting.\n", pkg); + xbps_error_printf(_("Package `%s' contains invalid dependencies, exiting.\n"), pkg); else if (rv == EBUSY) - xbps_error_printf("The 'xbps' package must be updated, please run `xbps-install -u xbps`\n"); + xbps_error_printf(_("The 'xbps' package must be updated, please run `xbps-install -u xbps`\n")); else if (rv != 0) { - xbps_error_printf("Unexpected error: %s\n", strerror(rv)); + xbps_error_printf(_("Unexpected error: %s\n"), strerror(rv)); return -1; } return rv; @@ -403,20 +409,20 @@ exec_transaction(struct xbps_handle *xhp, unsigned int maxcols, bool yes, bool d if (xbps_array_count(array)) { /* missing dependencies */ print_array(array); - xbps_error_printf("Transaction aborted due to unresolved dependencies.\n"); + xbps_error_printf(_("Transaction aborted due to unresolved dependencies.\n")); } } else if (rv == ENOEXEC) { array = xbps_dictionary_get(xhp->transd, "missing_shlibs"); if (xbps_array_count(array)) { /* missing shlibs */ print_array(array); - xbps_error_printf("Transaction aborted due to unresolved shlibs.\n"); + xbps_error_printf(_("Transaction aborted due to unresolved shlibs.\n")); } } else if (rv == EAGAIN) { /* conflicts */ array = xbps_dictionary_get(xhp->transd, "conflicts"); print_array(array); - xbps_error_printf("Transaction aborted due to conflicting packages.\n"); + xbps_error_printf(_("Transaction aborted due to conflicting packages.\n")); } else if (rv == ENOSPC) { /* not enough free space */ xbps_dictionary_get_uint64(xhp->transd, @@ -435,20 +441,20 @@ exec_transaction(struct xbps_handle *xhp, unsigned int maxcols, bool yes, bool d rv = -1; goto out; } - xbps_error_printf("Transaction aborted due to insufficient disk " - "space (need %s, got %s free).\n", instsize, freesize); + xbps_error_printf(_("Transaction aborted due to insufficient disk " + "space (need %s, got %s free).\n"), instsize, freesize); if (drun) { goto proceed; } } else { - xbps_error_printf("Unexpected error: %s (%d)\n", + xbps_error_printf(_("Unexpected error: %s (%d)\n"), strerror(rv), rv); } goto out; } proceed: #ifdef FULL_DEBUG - xbps_dbg_printf("Dictionary before transaction happens:\n"); + xbps_dbg_printf(_("Dictionary before transaction happens:\n")); xbps_dbg_printf_append("%s", xbps_dictionary_externalize(xhp->transd)); #endif @@ -484,23 +490,23 @@ exec_transaction(struct xbps_handle *xhp, unsigned int maxcols, bool yes, bool d /* * Ask interactively (if -y not set). */ - if (!yes && !yesno("Do you want to continue?")) { - printf("Aborting!\n"); + if (!yes && !yesno(_("Do you want to continue?"))) { + printf(_("Aborting!\n")); goto out; } /* * It's time to run the transaction! */ if ((rv = xbps_transaction_commit(xhp)) == 0) { - printf("\n%u downloaded, %u installed, %u updated, " - "%u configured, %u removed, %u on hold.\n", + printf(_("\n%u downloaded, %u installed, %u updated, " + "%u configured, %u removed, %u on hold.\n"), trans->dl_pkgcnt, trans->inst_pkgcnt, trans->up_pkgcnt, trans->cf_pkgcnt + trans->inst_pkgcnt + trans->up_pkgcnt, trans->rm_pkgcnt, trans->hold_pkgcnt); } else { - xbps_error_printf("Transaction failed! see above for errors.\n"); + xbps_error_printf(_("Transaction failed! see above for errors.\n")); } out: if (trans->iter) diff --git a/bin/xbps-install/usr/share/locale/pt_BR/LC_MESSAGES/xbps-install.mo b/bin/xbps-install/usr/share/locale/pt_BR/LC_MESSAGES/xbps-install.mo new file mode 100644 index 0000000000000000000000000000000000000000..ea43c51a9101c59ff332de627b60750f5a3a912b GIT binary patch literal 9376 zcma)>Ta08y8ONK8s0|{5f&xmRjJpfdvx~rj!?HNLGrJ7zT-cc*tQ#WLeX6?;d-|N- zbD5dms4)>^eBhA;p9nFyiV{qG(D*u-7&ZE$i6LUt7b7vg_~0cP{C!n*`ZAZ^t?b!< zpHpAmzWZ16ha0bc@rp{Na+K!~kGir_IRoBsb)_QT^Y=LXBKQ>^Y2OE*1YZZQ0pA5b z0baw)r@#sDR&XBtC>Vfuf?opP3%=~}BKTq6-vDn1-vnjcpTG}+{{=q+UeBNj@GkJv z;N#$p;CWE!p9gONU-tMT|NYmXtox3~>)yxtc%K4gze^rtu*&-j;0*W@xDR{_l>J}% zez)#z;9a~Q17+S8_;K(X;0@qKP|opV@RQ(gLD}!W{P#Op75Fvq0r1

i=AfKw?It&F1HAVN_65p1ze8Avq;h~sM9zo61K=unGx%jt_Wz>){sR!! zSKjjYXOMrDclhr%PzDM8?V!l>K~TOw4$8ip;6d<3P~`hl-~To!{QI}Zo9Pre+y~wP zJ_*V^=l%B=K%xI0D02T92+Jye0fk@x04Kpm5jH<75h(n69;|_HfWnuzK^gxpD0H9r zn49-7DEheq-UIePp?ej40DKda_5TCPzHZ^rhr#!MDIi!24K4<~t9f5Ynx@C=+iWh$W_{d zJeX(YVV;M0gg<2yo{7Fn`wY)jJc_%2Q4f%#awf&I1#4<2LV z&oj|WJWKp8*Ok4zOUwAiKikT0mFh&Hf@C9(5*?UeQt=wbS+1kVzZKm;=l*viiJM`o zNd0SSI?1~Koy4l0M8Qlox^YgojB19F$)IxGZa(QR zVxcfWNm$a%`ppf^QFg7_A-i-uWzw+O8|vUpxoM?g-m6yB*)s>@XB5~wxCl;U)2cj} z44InZ5c09l2bC3#hRL#K5k)=U>Ce7r*T_sod@kk~3clt>O$2WK{)s0tVTyWoBHO3- zPeh@r_i~dR7*Dk;+32cHa=UHO3RQ^nL``IaBk%kUe~MBhQ0mkuFY0ObH{7)mMvYV94S~;Q7hd_pU3Oeaf%{1vCuW6p@Fi{-lp^n(1io*J4y}N@VN*d=_ z#;ESOR#5lj;fhJSDW>5*%$IiWG;vtzRb??LwIEZCB27)4M?ICAR+!}mhk#i?lA3Ok zg?W;OW_L2guzU z(Lrxu(c1|`LYm=Fti#Aa1qM+DCT?($No6)+aNJ_lY3K5GR?Fe0-gsX1SSaBK(FfJFG=-QMsVN;wi7rBQkvCDC>K#^`F6WED~G6GhlpN=S<`-VR=C?&qC!A8So03u>h!32u4Tm5X)CwB9M3K-ug)(mt~{g8EOWUiZDvx{YP!gij?VEt!)?XnYS80V11glQlLUsr$7Qe!oa#srrbh?Emv!DQ zWlE3QFZwja5mc>VN9jh}NXN*y{wUuIH3>7V) z&DwF^glb8Qt14UHrK2m7kPy>QQ1*j|>}Ls+3g6R~0BNF34%?IoksgM(y`8XM{cO0Y zlK+-j)$PN~51jUDSuY+| zSnyklgFxB zESn10kvP)PHtWB7gE=jfLpwZDq>(q8nIIV6JE|PXzucK2x#6pc{gPQT5?HV$#L zL8moLcxl5&Ih_2rCHx$1et1DJ;IpjBTtIF)Q-TlhFMb@)*AG#a1gwS}w|2DM{FE32(0)2h0> zR6A|fLm5?@C3BlrXXa*3*A|v)voq?krRjzFdp^IkI9ENTv%F@5ex$LzX?4P+G5$7D zD@k!dt0V0^CtE#uuodR*qCQ2wa4;`6vk2dOl+kgkfX%g4qdU{;)Xd_^wV9K1>d2{6 zpNqn&ByA07rd2op!m-oUh53cK!GZ3bI#fMQZbybtTkUn(XKpt0gWZU9!li2dxlKC#EGPuTDu7jkcJjOPM zseHXXYckWR>u8rQbbv5~<3Kj}O;;`lBzfYE-C9yQulUkA+fh2(k=tr#c7zx2NScTa zCLCFc7t4-t?=BMWWKfb~FfxrjW=xcpfn^2lStU8%2pe2_zN3`BB>A?QnmLVdHgSTn zhqLzP(xGjqbBFVa;5nRX*;}70dvumHHll`_18=>e`g+nYab0g_QhG}TV+*_Xi<<7$ z*WdiEBTM1z+F9=3u4*f5Ij5A?TNk&!l{gP5-lYHHJ}oBe+PboB-&Zx&L0gKQe!XLh zY~0G$D`|)(qKC*<`~1MIf9Wq&>7%3HT@kHGz0oDHdNT3u z)=#9~)>3RoZLM@!YeTl3hWQa=S#_7xF_nkdJOj2>-JYTzCHQ-~F`z-&J>ThyLl#a1 zA#P7cms5S4xLtI-9b!OIbyI;!o$@G8E+zQZYt-P>ofPI< zuTYt5LRp6Q4&=agu2N%%Jx!(5EF^=kb&Mi~YY@C>u15CC7o$qZ!|EICEU89lx*AK~ zQIcDdIf~A$i*{TWwS9fvL}I+Qgmfep5n+dO=XC-xzNET<)Xnf3dFKkLB7NV zoQ)1;S)PPL>D{|4|DsgX6Qi*Gt`Z#RLt;_ zgNSRE6Xoee!iBHTjoOde+cR5ZB7$a^%{rzqsLb7NoL?E<&8Q|=b#&FbsKX_<My}Y`9{ESlUv!gMU{(?UbYEYzTn7E@( zGH`&GQ}s(i)K90Bkzho+gL@uLcBuQs4mz4z>ar^Tt&8~g)OcU!_6GNT!sMdg9{;Zx zn+Zzw-w+QK6u7x{b3rZ~bB;_kC-?0>8I-usxwE8>>NmIzK!w%i-wZ5Rex+OvBry9@ zR|ED;_9oX#-d_&j8sJLj@~;P&Mid4I!a%gAe;9Xbz@eoM8go%F+s|z&4Y?wB*)TF1 zwp?T;oT0zePSK|^cLht5QOH?f`fvc_g+dY@+v)1LJ1@KL=nDqDkll`JY>S%%;h6S! z2iEJd(9pq0S1etn-0O_FNGL5J3n}EC1u$UjeFDiz5^s~EBsttEplTZ5OD@E+aCn&%*8_K2c%qy42<6CVp1JmC@%{T&EPtrzs<*V zJ(P%)IydKuF1WZ$_`Zz$hQSnx*n?jk;%0o!mHo^fL1#R&ocM~Pqz)4C{EDi-Tv3Uszkfz{I i17im*pPmm7-(Qi;dyhYrj{Kpt%#27Zb}a_`#Qz7@!h;k5 literal 0 HcmV?d00001 diff --git a/bin/xbps-install/usr/share/locale/pt_BR/LC_MESSAGES/xbps-install.pot b/bin/xbps-install/usr/share/locale/pt_BR/LC_MESSAGES/xbps-install.pot new file mode 100644 index 000000000..7520f5e86 --- /dev/null +++ b/bin/xbps-install/usr/share/locale/pt_BR/LC_MESSAGES/xbps-install.pot @@ -0,0 +1,403 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST Fernando Souza , 2025. +# +# xbps-install.pot - Tradução em português do Brasil +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: xbps-install 0.60\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-09-13 17:06+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Fernando Souza \n" +"Language-Team: LANGUAGE \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: main.c:51 +#, c-format +msgid "" +"Usage: xbps-install [OPTIONS] [PKGNAME...]\n" +"\n" +"OPTIONS\n" +" -A, --automatic Set automatic installation mode\n" +" -C, --config

Path to confdir (xbps.d)\n" +" -c, --cachedir Path to cachedir\n" +" -d, --debug Debug mode shown to stderr\n" +" -D, --download-only Download packages and check integrity, nothing " +"else\n" +" -f, --force Force package re-installation\n" +" If specified twice, all files will be " +"overwritten.\n" +" -h, --help Show usage\n" +" -i, --ignore-conf-repos Ignore repositories defined in xbps.d\n" +" -I, --ignore-file-conflicts Ignore detected file conflicts\n" +" -U, --unpack-only Unpack packages in transaction, do not " +"configure them\n" +" -M, --memory-sync Remote repository data is fetched and stored\n" +" in memory, ignoring on-disk repodata archives\n" +" -n, --dry-run Dry-run mode\n" +" -R, --repository Add repository to the top of the list\n" +" This option can be specified multiple times\n" +" -r, --rootdir Full path to rootdir\n" +" --reproducible Enable reproducible mode in pkgdb\n" +" --staging Enable use of staged packages\n" +" -S, --sync Sync remote repository index\n" +" -u, --update Update target package(s)\n" +" -v, --verbose Verbose messages\n" +" -y, --yes Assume yes to all questions\n" +" -V, --version Show XBPS version\n" + +msgstr "" +"Uso: xbps-install [OPÇÕES] [NOME DO PACOTE...]\n" +"\n" +"OPÇÕES\n" +" -A, --automatic Define o modo de instalação automática\n" +" -C, --config Caminho para o diretório de configuração (xbps.d)\n" +" -c, --cachedir Caminho para o diretório de cache\n" +" -d, --debug Modo de depuração mostrado no stderr\n" +" -D, --download-only Baixe pacotes e verifique a integridade, nada mais " +"else\n" +" -f, --force Forçar reinstalação do pacote\n" +" Se especificado duas vezes, todos os arquivos serão sobrescritos. " +"overwritten.\n" +" -h, --help Mostrar uso\n" +" -i, --ignore-conf-repos Ignorar repositórios definidos em xbps.d\n" +" -I, --ignore-file-conflicts Ignorar conflitos de arquivos detectados\n" +" -U, --unpack-only Descompacte os pacotes na transação, " +"não os configure\n" +" -M, --memory-sync Os dados do repositório remoto são obtidos e armazenados\n" +" na memória, ignorando os arquivos de repositório em disco.\n" +" -n, --dry-run Modo de simulação\n" +" -R, --repository Adicionar repositório ao topo da lista.\n" +" Esta opção pode ser especificada várias vezes.\n" +" -r, --rootdir Caminho completo para o diretório raiz\n" +" --reproducible Habilitar modo reproduzível no pkgdb\n" +" --staging Habilitar o uso de pacotes preparados\n" +" -S, --sync Sincronizar índice de repositório remoto\n" +" -u, --update Atualizar pacote(s) alvo\n" +" -v, --verbose Mensagens detalhadas\n" +" -y, --yes Assume sim para todas as perguntas\n" +" -V, --version Mostrar versão do XBPS\n" + +#: main.c:86 +#, c-format +msgid "%s: unpacked %sfile `%s' (% bytes)\n" +msgstr "%s: arquivo %s descompactado `%s' (% bytes)\n" + +#: main.c:98 +#, c-format +msgid "Failed to import pubkey from %s: %s\n" +msgstr "Falha ao importar a chave pública de %s: %s\n" + +#: main.c:255 +#, c-format +msgid "Failed to initialize libxbps: %s\n" +msgstr "Falha ao inicializar libxbps: %s\n" + +#: main.c:276 +#, c-format +msgid "Failed to lock the pkgdb: %s\n" +msgstr "Falha ao bloquear o pkgdb: %s\n" + +#: state_cb.c:51 +#, c-format +msgid "" +"\n" +"[*] Downloading packages\n" +msgstr "" +"\n" +"[*] Baixando pacotes\n" + +#: state_cb.c:54 +#, c-format +msgid "" +"\n" +"[*] Verifying package integrity\n" +msgstr "" +"\n" +"[*] Verificando a integridade do pacote\n" + +#: state_cb.c:57 +#, c-format +msgid "" +"\n" +"[*] Collecting package files\n" +msgstr "" +"\n" +"[*] Coletando arquivos de pacotes\n" + +#: state_cb.c:60 +#, c-format +msgid "" +"\n" +"[*] Unpacking packages\n" +msgstr "" +"\n" +"[*] Desembalando pacotes\n" + +#: state_cb.c:63 +#, c-format +msgid "" +"\n" +"[*] Configuring unpacked packages\n" +msgstr "" +"\n" +"[*] Configurando pacotes descompactados\n" + +#: state_cb.c:66 +#, c-format +msgid "[*] pkgdb upgrade in progress, please wait...\n" +msgstr "[*] Atualização do pkgdb em andamento, aguarde...\n" + +#: state_cb.c:69 +#, c-format +msgid "[*] Updating repository `%s' ...\n" +msgstr "[*] Atualizando repositório `%s' ...\n" + +#: state_cb.c:86 +#, c-format +msgid "%s: removing ...\n" +msgstr "%s: removendo ...\n" + +#: state_cb.c:89 +#, c-format +msgid "%s: configuring ...\n" +msgstr "%s: configurando ...\n" + +#: state_cb.c:95 +#, c-format +msgid "%s: unpacking ...\n" +msgstr "%s: desempacotando ...\n" + +#: state_cb.c:108 +#, c-format +msgid "%s: updating to %s ...\n" +msgstr "%s: atualizando para %s ...\n" + +#: state_cb.c:110 +#, c-format +msgid "%s: updating to %s ... " +msgstr "%s: atualizando para %s ... " + +#: state_cb.c:126 +#, c-format +msgid "%s: installed successfully.\n" +msgstr "%s: instalado com sucesso.\n" + +#: state_cb.c:128 +#, c-format +msgid "Installed `%s' successfully " +msgstr "Installed `%s' successfully " + +#: state_cb.c:134 +#, c-format +msgid "%s: updated successfully.\n" +msgstr "`%s' instalado com sucesso\n" + +#: state_cb.c:136 +#, c-format +msgid "Updated `%s' successfully " +msgstr "`%s' atualizado com sucesso" + +#: state_cb.c:142 +#, c-format +msgid "%s: removed successfully.\n" +msgstr "%s: removido com sucesso.\n" + +#: state_cb.c:144 +#, c-format +msgid "Removed `%s' successfully " +msgstr "`%s' removido com sucesso" + +#: state_cb.c:150 +#, c-format +msgid "" +"The pkgdb file has been upgraded successfully, please reexec the command " +"again.\n" +msgstr "O arquivo pkgdb foi atualizado com sucesso. Execute o " +"comando novamente." +"\n" + +#: state_cb.c:155 +#, c-format +msgid "Fingerprint: %s\n" +msgstr "Impressão digital: %s\n" + +#: state_cb.c:156 +msgid "Do you want to import this public key?" +msgstr "Você deseja importar esta chave pública?" + +#: state_cb.c:193 +#, c-format +msgid "%s: unknown state %d\n" +msgstr "%s: estado desconhecido %d\n" + +#: transaction.c:224 +#, c-format +msgid "%u package%s will be downloaded:\n" +msgstr "%u pacote%s será baixado:\n" + +#: transaction.c:230 +#, c-format +msgid "%u package%s will be installed:\n" +msgstr "%u pacote%s será instalado:\n" + +#: transaction.c:236 +#, c-format +msgid "%u package%s will be updated:\n" +msgstr "%u pacote%s será atualizado:\n" + +#: transaction.c:242 +#, c-format +msgid "%u package%s will be configured:\n" +msgstr "%u pacote%s será configurado:\n" + +#: transaction.c:248 +#, c-format +msgid "%u package%s will be removed:\n" +msgstr "%u pacote%s será removido:\n" + +#: transaction.c:254 +#, c-format +msgid "%u package%s are on hold:\n" +msgstr "%u pacote%s está em espera:\n" + +#: transaction.c:277 +#, c-format +msgid "Size to download: %6s\n" +msgstr "Tamanho para download: %6s\n" + +#: transaction.c:285 +#, c-format +msgid "Size required on disk: %6s\n" +msgstr "Tamanho necessário no disco: %6s\n" + +#: transaction.c:293 +#, c-format +msgid "Size freed on disk: %6s\n" +msgstr "Tamanho liberado no disco: %6s\n" + +#: transaction.c:301 +#, c-format +msgid "Space available on disk: %6s\n" +msgstr "Espaço disponível em disco: %6s\n" + +#: transaction.c:331 +msgid "No packages currently registered.\n" +msgstr "Nenhum pacote registrado no momento.\n" + +#: transaction.c:337 transaction.c:368 transaction.c:393 +msgid "The 'xbps' package must be updated, please run `xbps-install -u xbps`\n" +msgstr "O pacote 'xbps' precisa ser atualizado, execute `xbps-install -u xbps`\n" + +#: transaction.c:343 transaction.c:364 transaction.c:389 +msgid "No repositories currently registered!\n" +msgstr "Nenhum repositório registrado no momento!\n" + +#: transaction.c:346 transaction.c:370 transaction.c:395 +#, c-format +msgid "Unexpected error: %s\n" +msgstr "Erro inesperado: %s\n" + +#: transaction.c:360 +#, c-format +msgid "Package `%s' already installed.\n" +msgstr "Pacote `%s' já instalado.\n" + +#: transaction.c:362 transaction.c:385 +#, c-format +msgid "Package '%s' not found in repository pool.\n" +msgstr "Pacote '%s' não encontrado no pool do repositório.\n" + +#: transaction.c:366 transaction.c:391 +#, c-format +msgid "Package `%s' contains invalid dependencies, exiting.\n" +msgstr "Pacote `%s' contém dependências inválidas, saindo.\n" + +#: transaction.c:383 +#, c-format +msgid "Package '%s' is up to date.\n" +msgstr "Pacote '%s' está atualizado.\n" + +#: transaction.c:387 +#, c-format +msgid "Package '%s' not installed.\n" +msgstr "Pacote '%s' não instalado.\n" + +#: transaction.c:420 +msgid "Transaction aborted due to unresolved dependencies.\n" +msgstr "Transação Abortada devido a dependências não resolvidas.\n" + +#: transaction.c:427 +msgid "Transaction aborted due to unresolved shlibs.\n" +msgstr "Transação abortada devido a shlibs não resolvidos.\n" + +#: transaction.c:433 +msgid "Transaction aborted due to conflicting packages.\n" +msgstr "Transação abortada devido a pacotes conflitantes.\n" + +#: transaction.c:452 +#, c-format +msgid "" +"Transaction aborted due to insufficient disk space (need %s, got %s free).\n" +msgstr "" +"Transação abortada devido a espaço em disco insuficiente (precisa de %s, %s livres).\n" + +#: transaction.c:458 +#, c-format +msgid "Unexpected error: %s (%d)\n" +msgstr "Erro inesperado: %s (%d)\n" + +#: transaction.c:465 +msgid "Dictionary before transaction happens:\n" +msgstr "Dicionário antes da transação acontecer:\n" + +#: transaction.c:501 +msgid "Do you want to continue?" +msgstr "Você deseja continuar?" + +#: transaction.c:502 +#, c-format +msgid "Aborting!\n" +msgstr "Abortando!\n" + +#: transaction.c:509 +#, c-format +msgid "" +"\n" +"%u downloaded, %u installed, %u updated, %u configured, %u removed, %u on " +"hold.\n" + +msgstr "" +"\n" +"%u baixou, %u instalou, %u atualizou, %u configurou, %u removeu, %u em " +"espera.\n" + + +#: transaction.c:517 +msgid "Transaction failed! see above for errors.\n" +msgstr "A transação falhou! veja os erros acima.\n" + +#: util.c:154 +#, c-format +msgid "\nName " +msgstr "\nNome " + +#: util.c:156 +#, c-format +msgid "Action Version New version Download size\n" +msgstr "Ação Versão Nova versão Tamanho do download\n" + +# question.c +msgid " [Y/n] " +msgstr " [S/n] " + +msgid " [y/N] " +msgstr " [s/N] " + diff --git a/bin/xbps-install/usr/share/man/pt_BR/man1/xbps-install.1 b/bin/xbps-install/usr/share/man/pt_BR/man1/xbps-install.1 new file mode 100644 index 000000000..72391f22f --- /dev/null +++ b/bin/xbps-install/usr/share/man/pt_BR/man1/xbps-install.1 @@ -0,0 +1,295 @@ +.Dd Feb 9, 2023 +.Dt XBPS-INSTALL 1 +.Os +.Sh NOME +.Nm xbps-install +.Nd Utilitário XBPS para (re)instalar e atualizar pacotes +.Sh SINOPSE +.Nm +.Op OPÇÕES +.Op PACOTE... +.Sh DESCRIÇÃO +The +.Nm +utility installs, reinstalls, downgrades and updates packages in the target root directory. +The argument +.Ar PKG +is a package expression, which is explained in the +.Em PACKAGE EXPRESSION +section. +.Pp +If package is installed, it will be updated to the version available in repositories +matching the +.Em PACKAGE EXPRESSION . +Otherwise it will be installed, or reinstalled/downgraded if +.Fl f , Fl -force +option is set. +.Sh EXPRESSÃO DE PACOTE +A package expression is a form to match a pattern; currently xbps +supports 3 ways to specify them: +.Bl -dash +.It +by package name, i.e: +.Dq Sy foo . +.It +by exact package name and version, i.e: +.Dq Sy foo-1.0_1 . +.It +by specifying a package name and version separated by any of the following version comparators: +.Pp +.Bl -item -compact +.It +.Sy < +less than +.It +.Sy > +greater than +.It +.Sy <= +less or equal than +.It +.Sy >= +greater or equal than +.Pp +Example: +.Dq Sy foo>=2.0 . +.El +.El +.Pp +The first repository matching the package expression wins. +.Sh MODOS DE PACOTE +An installed package can have some specific modes of operation. +Currently the following modes are available: +.Bl -tag -width -x +.It Sy hold +The package is on hold mode. +Packages in this mode won't be updated unless +it's explicitely declared to be updated. +The only way to update packages in this mode is by using the +.Fl f , Fl -force +option. +To list packages in this mode use +.Nm xbps-query Fl H . +.It Sy manual +The package is in manual mode of installation and won't be considered for +removal when running +.Nm xbps-remove Fl o . +To list packages in this mode use +.Nm xbps-query Fl m . +.It Sy repolock +A package in repolock mode will only accept updates that are available in the +same repository that was used for installing. +To list packages in this mode use +.Nm xbps-query Fl -list-repolock-pkgs . +.El +.Sh OPÇÕES +.Bl -tag -width -x +.It Fl A , Fl -automatic +Enables automatic installation mode, i.e. package will be treated as orphan +if no package is depending on it directly. +.No See Fl -mode Sy auto No in Xr xbps-pkgdb 1 . +.It Fl C , Fl -config Ar dir +Specifies a path to the XBPS configuration directory. +If the first character is not '/' then it's a relative path of +.Ar rootdir . +.It Fl c , Fl -cachedir Ar dir +Specifies a path to the cache directory, where binary packages are stored. +If the first character is not '/' then it's a relative path of +.Ar rootdir . +.It Fl d , Fl -debug +Enables extra debugging shown to stderr. +.It Fl D , Fl -download-only +Only download packages to the cache, do not do any other installation steps. +This may be useful for doing system upgrades while offline, or automatically +downloading updates while leaving you with the option of still manually running +the update. +.It Fl f , Fl -force +Force installation (downgrade if package version in repos is less than installed version), +or reinstallation (if package version in repos is the same) to the target +.Ar PKG , +overwriting regular package files and symlinks (if they have been modified) but +.Em preserving configuration files . +The only way to update packages on +.Em hold +mode is by using this flag. +If +.Fl f +is specified twice all files will be unpacked, even +.Em configuration files . +.It Fl h , Fl -help +Show the help message. +.It Fl I , Fl -ignore-file-conflicts +Ignore detected file conflicts in a transaction. +.It Fl i , Fl -ignore-conf-repos +Ignore repositories defined in configuration files. +Only repositories specified in the command line via +.Ar --repository +will be used. +.It Fl M , Fl -memory-sync +For remote repositories, the data is fetched and stored in memory for the current +operation. +Cached on-disk repository indexes of remote repositories will be ignored. +.It Fl n , Fl -dry-run +Dry-run mode. +Show what actions would be done but don't change any state of the system. +To use a fresh repository indexes use +.Fl M +for in memory sync. +.Pp +The output will be a line for each action in the following format: +.D1 +.It Fl R , Fl -repository Ar url +Appends the specified repository to the top of the list. +The +.Ar url +argument expects a URL to the repository for remote repositories or +a path for local repositories. +Note that remote repositories must be signed using +.Xr xbps-rindex 1 . +This option can be specified multiple times. +.It Fl -reproducible +Enables reproducible mode in pkgdb. +The +.Ar install-date +and +.Ar repository +package objects are not stored in pkgdb. +.It Fl -staging +Enables the use of staged packages from remote repositories. +.It Fl r , Fl -rootdir Ar dir +Specifies a full path for the target root directory. +.It Fl S , Fl -sync +Synchronize remote repository index files. +.It Fl U , Fl -unpack-only +If set, packages to be installed or upgraded in the transaction won't be configured, +just unpacked. +That means that those packages should be reconfigured via +.Xr xbps-reconfigure 1 . +.It Fl u , Fl -update +Performs a full system upgrade: all installed packages +.Pq except those on Sy hold , No see Fl -mode Sy hold No in Xr xbps-pkgdb 1 +will be updated to the greatest +versions that were found in repositories. +.It Fl v , Fl -verbose +Enables verbose messages. +.It Fl y , Fl -yes +Assume yes to most questions and avoid interactive questions. +A prompt will still be shown if the transaction requires trusting +a new signing key for packages. +If you need to automate new installations, +it is necessary to add these keys to the system before installation, see +.Sx FILES . +.It Fl V , Fl -version +Show the version information. +.El +.Sh AMBIENTE +.Bl -tag -width SSL_NO_VERIFY_HOSTNAME +.It Sy FORCE_IPV4 +Only use IPv4. +.It Sy FORCE_IPV6 +Only use IPv6. +.It Sy FTP_PASSIVE_MODE +If set to anything else than +.Ar "no" +passive mode will be set for the ftp connection. +.It Sy FTP_LOGIN +User name to be set for ftp authentication. +.It Sy FTP_PASSWORD +Password to be set for ftp authentication. +.It Sy FTP_PROXY +Proxy URL that will be used to establish a ftp connection. +.It Sy HTTP_PROXY +Proxy URL that will be used to establish a http connection. +.It Sy HTTP_PROXY_AUTH +Sets the credentials to authenticate a user agent to a proxy server, in the form +.Ar user:pass . +.It Sy HTTP_AUTH +Sets the credentials to authenticate to a http server, in the form +.Ar user:pass . +.It Sy HTTP_REFERER +Overrides the default Referer http header. +.It Sy HTTP_USER_AGENT +Override the default User-Agent http header. +.It Sy NO_PROXY +Specifies a set of domains for which the proxy should not be consulted. +The contents is a comma-, or space-separated list of domain names. +A single asterisk will override all proxy variables and no transactions +will be proxied. +.It Sy SOCKS_PROXY +Proxy URL that will be used to establish a socks connection. +.It Sy SSL_NO_VERIFY_HOSTNAME +Disables SSL/TLS hostname verification. +.It Sy SSL_NO_VERIFY_PEER +Disables SSL/TLS peer verification. +.It Sy SSL_CA_CERT_FILE +Overrides the default CA certificates file, by default set to +.Ar /etc/ssl/certs/ca-certificates.crt . +.It Sy SSL_CA_CERT_PATH +Overrides the default CA certificates path, by default set to +.Ar /etc/ssl/certs . +.It Sy SSL_CLIENT_CERT_FILE +Sets the SSL/TLS client verification certificate file. +.It Sy SSL_CLIENT_KEY_FILE +Sets the SSL/TLS client verification key file. +.It Sy CONNECTION_TIMEOUT +Sets connection timeout in milliseconds +instead of default value of 5 minutes. +When -1, waits indefinitely. +.It Sy XBPS_ARCH +Overrides +.Xr uname 2 +machine result with this value. +Useful to install packages with a fake architecture +.It Sy XBPS_TARGET_ARCH +Sets the target architecture to this value. +This variable differs from +.Sy XBPS_ARCH +in that it allows you to install packages partially, because +configuration phase is skipped (the target binaries might not be compatible with +the native architecture). +.It Sy XBPS_SYSLOG +Overrides the +.Xr xbps.d 5 +.Sy syslog=true|false +configuration option. +.El +.Sh ARQUIVOS +.Bl -tag -width /var/db/xbps/.-files.plist +.It Ar /etc/xbps.d +Default configuration directory. +.It Ar /usr/share/xbps.d +Default system configuration directory. +.It Ar /var/db/xbps/.-files.plist +Package files metadata. +.It Ar /var/db/xbps/pkgdb-0.38.plist +Default package database (0.38 format). Keeps track of installed packages and properties. +.It Ar /var/db/xbps/keys +Default trusted keys directory. +.It Ar /var/cache/xbps +Default cache directory to store downloaded binary packages. +.El +.Sh VEJA TAMBÉM +.Xr xbps-alternatives 1 , +.Xr xbps-checkvers 1 , +.Xr xbps-create 1 , +.Xr xbps-dgraph 1 , +.Xr xbps-digest 1 , +.Xr xbps-fbulk 1 , +.Xr xbps-fetch 1 , +.Xr xbps-pkgdb 1 , +.Xr xbps-query 1 , +.Xr xbps-reconfigure 1 , +.Xr xbps-remove 1 , +.Xr xbps-rindex 1 , +.Xr xbps-uchroot 1 , +.Xr xbps-uunshare 1 , +.Xr xbps.d 5 +.Sh AUTORES +.An Juan Romero Pardines Aq Mt xtraeme@gmail.com +.Sh BUGS +Provavelmente, mas tento evitar que isso aconteça. +Use-o sob sua própria +responsabilidade e aproveite a vida. +.Pp +Relatar bugs em +.Lk https://github.com/void-linux/xbps/issues diff --git a/bin/xbps-install/util.c b/bin/xbps-install/util.c index d0eadf2c0..70f211ab3 100644 --- a/bin/xbps-install/util.c +++ b/bin/xbps-install/util.c @@ -38,6 +38,11 @@ #include #include "defs.h" + +#include +#include +#define _(STRING) gettext(STRING) + int get_maxcols(void) { @@ -146,14 +151,14 @@ print_trans_colmode(struct transaction *trans, unsigned int cols) if (cols <= hdrlen) return false; - printf("\nName "); + printf(_("\nName ")); if (pnamelen < 5) pnamelen = 5; for (x = 5; x < pnamelen; x++) printf(" "); - printf("Action Version New version Download size\n"); + printf(_("Action Version New version Download size\n")); while ((obj = xbps_object_iterator_next(trans->iter)) != NULL) { bool dload = false;