Little Write 3 месяцев назад
Родитель
Сommit
6ccb404c94

+ 33 - 1
web/src/i18n/locales/en.json

@@ -1781,5 +1781,37 @@
   "启用全部密钥": "Enable all keys",
   "以充值价格显示": "Show with recharge price",
   "美元汇率(非充值汇率,仅用于定价页面换算)": "USD exchange rate (not recharge rate, only used for pricing page conversion)",
-  "美元汇率": "USD exchange rate"
+  "美元汇率": "USD exchange rate",
+  "选择支付方式": "Choose payment channel",
+  "选择充值套餐": "Choose a top-up package",
+  "Creem 设置": "Creem Setting",
+  "Creem 介绍": "Creem is the payment partner you always deserved, we strive for simplicity and straightforwardness on our APIs.",
+  "Creem Setting Tips": "Creem only supports preset fixed-amount products. These products and their prices need to be created and configured in advance on the Creem website, so custom dynamic amount top-ups are not supported. Configure the product name and price on Creem, obtain the Product Id, and then fill it in for the product below. Set the top-up amount and display price for this product in the new API.",
+  "API 密钥": "API Secret",
+  "Webhook 密钥": "Webhook Secret",
+  "测试模式": "Test Mode",
+  "Creem API 密钥,敏感信息不显示": "Creem API key, sensitive information not displayed",
+ "用于验证回调 new-api 的 webhook 请求的密钥,敏感信息不显示": "The key used to validate webhook requests for the callback new-api, sensitive information is not displayed.",
+ "启用后将使用 Creem Test Mode": "",
+ "展示价格": "Display Pricing",
+ "Recharge Quota": "Recharge Quota",
+ "产品配置": "Product Configuration",
+"产品名称": "Product Name",
+"产品ID": "Product ID",
+"暂无产品配置": "No product configuration",
+"更新 Creem 设置": "Update Creem Settings",
+"编辑产品": "Edit Product",
+"添加产品": "Add Product",
+"例如:基础套餐": "e.g.: Basic Package",
+"例如:prod_6I8rBerHpPxyoiU9WK4kot": "e.g.: prod_6I8rBerHpPxyoiU9WK4kot",
+"货币": "Currency",
+"欧元": "EUR",
+"USD (美元)": "USD (US Dollar)",
+"EUR (欧元)": "EUR (Euro)",
+"例如:4.99": "e.g.: 4.99",
+"例如:100000": "e.g.: 100000",
+"请填写完整的产品信息": "Please fill in complete product information",
+"产品ID已存在": "Product ID already exists",
+"更新成功": "Update successful",
+"更新失败": "Update failed"
 }

+ 3 - 1
web/src/i18n/locales/zh.json

@@ -9,5 +9,7 @@
   "语言": "语言",
   "展开侧边栏": "展开侧边栏",
   "关闭侧边栏": "关闭侧边栏",
-  "注销成功!": "注销成功!"
+  "注销成功!": "注销成功!",
+  "Creem 介绍": "Creem 是一个简单的支付处理平台,支持固定金额产品销售,以及订阅销售。",
+  "Creem Setting Tips": "Creem 只支持预设的固定金额产品,这产品以及价格需要提前在Creem网站内创建配置,所以不支持自定义动态金额充值。在Creem端配置产品的名字以及价格,获取Product Id 后填到下面的产品,在new-api为该产品设置充值额度,以及展示价格。"
 }

+ 10 - 12
web/src/pages/Setting/Payment/SettingsPaymentGatewayCreem.js

@@ -189,7 +189,7 @@ export default function SettingsPaymentGatewayCreem(props) {
             key: 'productId',
         },
         {
-            title: t('价格'),
+            title: t('展示价格'),
             dataIndex: 'price',
             key: 'price',
             render: (price, record) => `${record.currency === 'EUR' ? '€' : '$'}${price}`,
@@ -232,20 +232,17 @@ export default function SettingsPaymentGatewayCreem(props) {
             >
                 <Form.Section text={t('Creem 设置')}>
                     <Text>
-                        Creem 是一个简单的支付处理平台,支持固定金额的产品销售。请在
+                        {t('Creem 介绍')}
                         <a
                             href='https://creem.io'
                             target='_blank'
                             rel='noreferrer'
-                        >
-                            Creem 官网
-                        </a>
-                        创建账户并获取 API 密钥。
+                        >Creem Official Site</a>
                         <br />
                     </Text>
                     <Banner
                         type='info'
-                        description={t('Creem 只支持预设的固定金额产品,不支持自定义金额充值')}
+                        description={t('Creem Setting Tips')}
                     />
 
                     <Row gutter={{ xs: 8, sm: 16, md: 24, lg: 24, xl: 24, xxl: 24 }}>
@@ -253,7 +250,7 @@ export default function SettingsPaymentGatewayCreem(props) {
                             <Form.Input
                                 field='CreemApiKey'
                                 label={t('API 密钥')}
-                                placeholder={t('creem_xxx 的 Creem API 密钥,敏感信息不显示')}
+                                placeholder={t('Creem API 密钥,敏感信息不显示')}
                                 type='password'
                             />
                         </Col>
@@ -261,7 +258,7 @@ export default function SettingsPaymentGatewayCreem(props) {
                             <Form.Input
                                 field='CreemWebhookSecret'
                                 label={t('Webhook 密钥')}
-                                placeholder={t('用于验证 Webhook 请求的密钥,敏感信息不显示')}
+                                placeholder={t('用于验证回调 new-api 的 webhook 请求的密钥,敏感信息不显示')}
                                 type='password'
                             />
                         </Col>
@@ -348,13 +345,13 @@ export default function SettingsPaymentGatewayCreem(props) {
                             size='large'
                             className='w-full'
                         >
-                            <Select.Option value='USD'>USD (美元)</Select.Option>
-                            <Select.Option value='EUR'>EUR (欧元)</Select.Option>
+                            <Select.Option value='USD'>{t('USD (美元)')}</Select.Option>
+                            <Select.Option value='EUR'>{t('EUR (欧元)')}</Select.Option>
                         </Select>
                     </div>
                     <div>
                         <Text strong className='block mb-2'>
-                            {t('价格')} ({productForm.currency === 'EUR' ? '欧元' : '美元'})
+                            {t('价格')} ({productForm.currency === 'EUR' ? t('欧元') : t('美元')})
                         </Text>
                         <InputNumber
                             value={productForm.price}
@@ -364,6 +361,7 @@ export default function SettingsPaymentGatewayCreem(props) {
                             precision={2}
                             size='large'
                             className='w-full'
+                            defaultValue={4.49}
                         />
                     </div>
                     <div>

+ 4 - 8
web/src/pages/TopUp/index.js

@@ -673,7 +673,7 @@ const TopUp = () => {
       </Modal>
 
       <Modal
-        title={t('确定要充值')}
+        title={t('确定要充值 $')}
         visible={stripeOpen}
         onOk={onlineStripeTopUp}
         onCancel={handleStripeCancel}
@@ -692,7 +692,7 @@ const TopUp = () => {
       </Modal>
 
       <Modal
-        title={t('确定要充值')}
+        title={t('确定要充值 $')}
         visible={creemOpen}
         onOk={onlineCreemTopUp}
         onCancel={handleCreemCancel}
@@ -1188,9 +1188,7 @@ const TopUp = () => {
                 <>
                   <div className='hidden md:block space-y-4'>
                     <Divider style={{ margin: '24px 0' }}>
-                      <Text className='text-sm font-medium'>
-                        {t('Creem 充值')}
-                      </Text>
+                      <Text className='text-sm font-medium'>Creem</Text>
                     </Divider>
 
                     <div>
@@ -1223,9 +1221,7 @@ const TopUp = () => {
                   {/* 移动端 Creem 充值区域 */}
                   <div className='md:hidden space-y-4'>
                     <Divider style={{ margin: '24px 0' }}>
-                      <Text className='text-sm font-medium'>
-                        {t('Creem 充值')}
-                      </Text>
+                      <Text className='text-sm font-medium'>Creem</Text>
                     </Divider>
 
                     <div>